簡體   English   中英

如何使用linq對網格中的列中的所有單元格求和

[英]How to perform sum of all cells in a column in grid using linq

我有一個要求。 喜歡....

Sname Marks Percentage

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

在這里我想添加標記並顯示如下所示的百分比

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

應該使用linq查詢來完成。我正在使用下面的linq查詢,該查詢執行分組以進行顯示。

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查詢執行上述方法的總和和百分比

您想使用.Sum()方法對所有Marks值求和,並使用.Average()獲得平均百分比。

可以通過以下MSDN鏈接找到用法示例:

.Sum()在此處了解更多信息: http : //msdn.microsoft.com/zh-cn/library/bb338442.aspx

.Average()在此處了解更多信息: http : //msdn.microsoft.com/zh-cn/library/bb338413.aspx

您可以按學生姓名對條目列表進行分組。 然后遍歷每個組以顯示:

  • 個人參賽屬於學生
  • LINQ的Sum()和Average()的合計結果

像這樣:

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("-----------------");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM