Hum*_*Ali 1 c# linq datatable ado.net
我在DataTable中有以下值
Affiliate Name | Call
---------------|-----
A | 2
B | 1
B | 0
A | 3
Run Code Online (Sandbox Code Playgroud)
我怎样才能检索到的总数Call对Affiliate Name“A”。在上面的示例中,它应该返回5。
foreach (DataRow row in dt.Rows)
{
string CallsOffered = //Get count
}
Run Code Online (Sandbox Code Playgroud)
您可以使用DataTable.Compute方法
var sumOfA = dt.Compute("Sum(Call)", "[Affiliate Name] = 'A'");
Run Code Online (Sandbox Code Playgroud)
或使用LINQ
var sumOfA = dt.AsEnumerable()
.Where(dr => dr.Field<string>("Affiliate Name").Equals("A"))
.Sum(dr => dr.Field<int>("Call"));
Run Code Online (Sandbox Code Playgroud)
如果您想获得Affiliate Name使用匿名类型的LINQ的所有值的调用总和
var results = dt.AsEnumerable()
.GroupBy(dr => dr.Field<string>("Affiliate Name"))
.Select((group, dr) => new
{
AffiliateName = group.Key,
CallsCount = group.Sum(dr.Field<int>("Call")))
});
foreach(var result in results)
{
// Use results
Console.WriteLine($"{result.AffiliateName}: {result.CallsCount}");
}
Run Code Online (Sandbox Code Playgroud)