使用LINQ将C#MultiSelectList拆分为较小的

时间:2012-04-16 06:25:00

标签: c# asp.net

嗨我有一个MultiSelectList,我想分成几个较小的MultiSelectList,具体取决于值(不是selectedValues),我想用LINQ来实现...确定它是可能但我不能切它..有什么建议吗?感谢。

3 个答案:

答案 0 :(得分:0)

这就是你想要的:

var multiSelectList= new MultiSelectList(new List<string>()); //your mutli-select list
var multiSelectListGroupedByValue=ms.GroupBy(x => x.Value)
                                  .Select(x=>new MultiSelectList(x.Select(y=>y.Value)));

答案 1 :(得分:0)

使用此代码(从此处Split a collection into `n` parts with LINQ?获取)

static class LinqExtensions
{
 public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts)
 {
     int i = 0;
     var splits = from item in list
                  group item by i++ % parts into part
                  select part.AsEnumerable();
     return splits;
 }
}

答案 2 :(得分:0)

我希望这就是你需要的东西

@{
    var array = new int[] { 1,2,3,4,5,6,7,8,9,10 };
}

@Html.ListBox("lstBoxLessThan5",new MultiSelectList(array.Where(a => a < 5).ToArray()));
<br />
@Html.ListBox("lstBoxMorethan5",new MultiSelectList(array.Where(a => a > 5).ToArray()));

将任何业务逻辑放在临时数据结构'array'