2010-06-17 4 views
1

얘들 아 나는 LINQ에 초보자입니다. 친절하게 도와주세요. 다음은 내 시나리오입니다 ...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 3 예를 들어

는 최소 ParaId 125입니다 ... 인 errorID 값의 각 그룹에 대한 ParaId 컬럼에 대한 최소 및 최대 값이며, 최대 내가에 붙어있어 129

입니다 ... var q = abc.GroupBy(x => x.ErrorID); // abc is the resultset

그리고 다음에해야 할 일을 모릅니다. 위의 내용을 정리해주십시오.

미리 감사드립니다.

답변

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); 
      } 
     } 
} 
을 할 것입니다
관련 문제