1

以下の multiSelectList を分割して n 個のアイテムをラップする良い方法はありますか? おそらくいくつかのlinq拡張機能を使用していますか?

たとえば、divTag.InnerHtml に追加する前に <div> で一度に 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);
}
4

1 に答える 1

1

MoreLINQBatch (NuGet で検索) には、任意のシーケンスからバッチを作成できる拡張機能があります。多分それはあなたが探しているものです。

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 に答える