有没有很好的方法来分解下面的multiSelectList并包装n个项目?可能使用一些linq扩展名?
例如,在< div>中一次包装4个项目。在将它添加到divTag.InnerHtml之前?显然必须首先检查是否有足够的物品?
foreach (SelectListItem item in multiSelectList)
{
divTag.InnerHtml += String.Format("<label for=\"{0}_{1}\">{3}" +
"<input type=\"checkbox\" name=\"{0}\" id=\"{0}_{1}\" value=\"{1}\" {2} />" +
"</label>",
propertyName,
item.Value,
selectedValues.Contains(item.Value) ? "checked=\"checked\"" : "",
item.Text);
}
答案 0 :(得分:1)
MoreLINQ(在NuGet上搜索它)具有扩展名Batch
,允许您从任何序列进行批处理。也许这就是你要找的东西。
foreach(var batch in multiSelectList.Batch(4))
{
// every batch will contain 4 items (well, except last one possibly)
foreach(SelectListItem item in batch)
{
//...
}
}