在LINQ中分组后如何获取相邻列的最小/最大值?

时间:2010-06-17 15:33:40

标签: linq-to-entities

伙计们,我是LINQ的新手。请帮助我。以下是我的情景...

ParaId-------ErrorId
1-------------1
60------------2
125-----------3
126-----------3
127-----------3
128-----------3
129-----------3
247-----------4
248-----------4
249-----------4

以上是某些查询的结果.ErrorId列重复值。我想要的是每组ErrorId值的ParaId列的Min和Max值......

例如,对于ErrorId 3,Min ParaId为125,Max为129。

我坚持...... var q = abc.GroupBy(x => x.ErrorID); // abc is the resultset

不知道接下来该做什么。请帮助我解决上述问题。

提前致谢。

1 个答案:

答案 0 :(得分:0)

这样做

class Program
    {
        static void Main(string[] args)
        {
            List<Err> l=new List<Err>() {
new Err(1,1),
new Err(60,2),
new Err(125,3),
new Err(126,3),
new Err(127,3),
new Err(128,3),
new Err(129,3),
new Err(247,4),
new Err(248,4),
new Err(249,4)};
var x=l.GroupBy(y=>y.ErrorId).Select(y=>new {y.Key,MaxPara=y.Max(z=>z.ParaId),MinPara=y.Min(z=>z.ParaId)});
foreach(var y in x) 
    Console.WriteLine("{0}   {1}   {2}",y.Key,y.MaxPara,y.MinPara);
            }
        }
}