1

有没有什么好的方法可以分解下面的 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);
}
4

1 回答 1

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)
   {
       //...
   }
}
于 2012-12-20T00:49:26.313 回答