从Linq的列表中获取子列表

时间:2014-01-29 09:38:47

标签: c# linq

我有一个像{Min,Max,rank}

这样的列表

我的需要是我需要根据排名

获得最小值和最大值作为列表

我写了像

这样的代码
ListA.Find(x => x.Rank == 1) 

从此我需要获得{Min,max}

的子列表

4 个答案:

答案 0 :(得分:3)

这就是你要找的东西:

var result = ListA.Find(x => x.Rank == 1).Select(x => new { x.min, x.max });

答案 1 :(得分:1)

ListA.Where(x => x.Rank == 1)
     .Select(x => new {
         Max = x.Max,
         Min = x.Min
     })
     .ToList();

答案 2 :(得分:1)

您应该检查GroupBy()语句,然后按Rank进行分组,然后选择MinMax

from x in ListA 
group x by x.Rank into group
select new with {
    Rank = group.Key,
    Items = group.Select(y => new with { y.Min, y.Max })
}

这将为您提供每个等级MinMax值的集合。如果您只想知道组的组合值,请使用:

from x in ListA 
group x by x.Rank into group
select new with {
    Rank = group.Key,
    Min = group.Min(y => y.Min),
    Max = group.Min(y => y.Max)
}

答案 3 :(得分:0)

var listAllRankOne = ListA.Where(x => x.Rank == 1).ToList()