2013-05-14 3 views
0

요구 사항이 있습니다. 같은 .... 여기linq을 사용하여 그리드의 열에있는 모든 셀의 합계를 계산하는 방법

Sname Marks Percentage 

aa 50  50 
aa 60  60 
bb 80  80 
bb 60  60 

나는 그것이 내가에 대한 그룹화 수행 follwing을 LINQ 쿼리를 사용하고있는 LINQ 쿼리를 사용하여 수행해야

Sname Marks Percentage 
aa 50  50 
aa 60  60 
----------------- 
aa 110 55 
---------------- 
bb 80  80 
bb 60  60 
----------------- 
bb 140 70 
----------------- 

아래처럼 표시 및 표시 비율을 추가 할 디스플레이.

List<Studentsmarkslist> mrksbrpby = (from n in lstmrks 
    group n by new { n.StudentName,n.Total,n.Percentage } 
     into g orderby g.Key.StudentName 
    select new Studentsmarkslist 
    { 
     StudentName = g.Key.StudentName, 
     Total = g.Key.Total, 
     Percentage = g.Key.Percentage 

    }).ToList(); 
return mrksbrpby 

) (이 LINQ 쿼리

답변

0

를 사용하는 방법은 위에서 언급 한대로 모든 마크 값을 합산의 .Sum() 메소드를 사용하고자 합 비율을 수행하고 .Average하는 방법에 대해 저를 제안하십시오 평균 비율을 얻기 위해서. 사용의

예는 MSDN 링크를 따라 찾을 수 있습니다

.Sum()는 여기에서 자세한 내용을보실 : http://msdn.microsoft.com/en-us/library/bb338442.aspx

.Average()가 여기 더 읽기 : http://msdn.microsoft.com/en-us/library/bb338413.aspx

0

당신이 할 수있는 학생들의 이름으로 항목 목록을 그룹화하십시오. 다음 표시 할 각 그룹을 반복 :

  • 개별 항목은 LINQ의 합계()와 평균()이 같이

에 의해 학생에게

  • 집계 결과를 소속 :

    var groups = from n in lstmrks 
          group n by n.StudentName; 
    foreach (var g in groups) 
    { 
        foreach (var s in g) 
         Console.WriteLine("{0}\t{1}\t{2}", s.StudentName, s.Total, s.Percentage); 
        Console.WriteLine("-----------------"); 
        Console.WriteLine("{0}\t{1}\t{2}", g.Key, g.Sum(x => x.Total), g.Average(x => x.Percentage)); 
        Console.WriteLine("-----------------"); 
    } 
    
  • 관련 문제