C# 如何将一个MultiSelectList拆分为n个项目,并用标记包装每个分区的项目组

C# 如何将一个MultiSelectList拆分为n个项目,并用标记包装每个分区的项目组,c#,asp.net-mvc-3,linq,C#,Asp.net Mvc 3,Linq,有什么好方法可以分解下面的多选列表并包装n个项目吗?可能使用一些linq扩展 例如,在将项目添加到divTag.InnerHtml之前,是否在中一次包装4个项目?显然必须先检查是否有足够的物品 foreach (SelectListItem item in multiSelectList) { divTag.InnerHtml += String.Format("<label for=\"{0}_{1}\">{3}" +

有什么好方法可以分解下面的多选列表并包装n个项目吗?可能使用一些linq扩展

例如,在将项目添加到divTag.InnerHtml之前,是否在中一次包装4个项目?显然必须先检查是否有足够的物品

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);
}
foreach(在multiSelectList中选择ListItem项)
{
divTag.InnerHtml+=String.Format(“{3}”+
"" +
"",
propertyName,
项目.价值,
selectedValues.Contains(item.Value)?“checked=”checked\:“”,
项目(案文);
}
(在NuGet上搜索)具有扩展名
批处理
,允许您从任何序列进行批处理。也许这就是你要找的

foreach(var batch in multiSelectList.Batch(4))
{
   // every batch will contain 4 items (well, except last one possibly)
   foreach(SelectListItem item in batch)
   {
       //...
   }
}
(在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)
   {
       //...
   }
}

谢谢你的建议,我试过了,效果很好。谢谢你的建议,我试过了,效果很好。