gpt4 book ai didi

c# - 在 n 列之间划分内容的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-28 13:52:38 28 4
gpt4 key购买 nike

我读过这个优秀的Multi-column list article ,以及 this question on SO .我得出的结论是,没有跨浏览器的方法可以将长无序列表转换为等长的 n 列。到目前为止,我已经简化为这样的多 ul 解决方案:

//Three columns.
string col1 = string.Empty;
string col2 = string.Empty;
string col3 = string.Empty;
int currItem = 0;
int collectionCount = myItemCollection.Count;

foreach item in myItemCollection {
currItem++;
if (currItem < collectionCount * .33)
{
col1 = col1 + item.someProperty
}
else if (currItem < collectionCount * .67)
{
col2 = col2 + item.someProperty
}
else
{
col3 = col3 + item.someProperty
}
}

string allColumns = @"<ul>" + col1 + "</ul><ul>"
col2 + "</ul><ul>" + col3 + "</ul>";

Response.Write(allColumns);

有没有一种更简单的方法可以将我的列表分成三组,或者更好的是,当元素是“第三”中的最后一项时,只需编写适当的结束/开始 ul 标记?

最佳答案

这就是我个人会选择的实现方式。

const int numColumns = 3;
const int numColumns = 3;
var columnLength = (int)Math.Ceiling((double)myItemCollection.Count / 3);

for (int i = 0; i < myItemCollection.Count; i++)
{
if (i % columnLength == 0)
{
if (i > 0)
Response.Write("</ul>");
Response.Write("<ul>");
}
Response.Write(myItemCollection[i].SomeProperty);
}

if (i % columnLength == 0)
Response.Write("</ul>");

你完全避免了字符串连接(当你只是写入一个流时真的没有必要,如果你不是你想要 xse StringBuilder)以及那些讨厌的 float 点操作可能会导致长列表不准确(至少它们是不必要的)。

无论如何,希望对您有所帮助...

关于c# - 在 n 列之间划分内容的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/701509/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com