我的List
类型为DailySummary
public class DailySummary
{
public string AffiliateID { get; set; }
public string TotalCalls { get; set; }
public string Date{ get; set; }
}
以下示例数据:
List<DailySummary> DealerTFNDatesTable = new List<DailySummary>();
DealerTFNDatesTable.Add(new DailySummary() { AffiliateID="0", Date = "12/12/2016", TotalCalls = "10"});
DealerTFNDatesTable.Add(new DailySummary() { AffiliateID="0", Date = "12/13/2016", TotalCalls = "74"});
DealerTFNDatesTable.Add(new DailySummary() { AffiliateID="1", Date = "12/22/2016", TotalCalls = "63"});
DealerTFNDatesTable.Add(new DailySummary() { AffiliateID="0", Date = "12/12/2016", TotalCalls = "58"});
现在,我想要检索按Date
分组的TotalCalls
和AffiliateID
,然后分配到另一个列表中。
for(int i =0; i < DealerTFNDatesTable.Count; i++)
{
List<NewList> newList = new List<NewList>();
newList.Date = //Assign Dintinct dates WHERE AffiliateId = 0
newList.AffiliateID = //AffiliateID=0
newList.TotalCalls= //TotalCalls SUM GROUPBY DATE and AffiliateID = 0
//For Date '12/12/2016' it will be 68, For '12/13/2016' it will be 74 and so on
}
对不起,我是LINQ的新手。有人可以帮助我或分享资源,我可以得到一个暗示来实现这个目标吗?
答案 0 :(得分:2)
这应该适用于通过AffilateID和Date进行分组然后得到总和(尽管将数字存储为类似字符串的数字很奇怪,但不管是什么漂浮在你的船上)。
'/web/**'
如果您现在查看结果,例如使用此代码,您将获得所需的值:
http://localhost:8080/myapp/web/**
答案 1 :(得分:0)
var results = DealerTFNDatesTable.GroupBy(T => new { T.AffiliateID })
答案 2 :(得分:0)
首先,
由于DealerTFNDatesTable
是变量,因此您应该使用驼峰大小写。因此它是dealerTFNDatesTable
然后完成@andy他的回答,因为你也想做一个选择。您可以按如下方式选择它:
var newVariable = from item in dealerTFNDatesTable
group item by new
{
item.Date,
item.AffiliateID,
}
into g
select new
{
Date = g.Key.Date,
Id = g.Key.AffiliateID,
Total = g.Sum(a => a.TotalCalls)
};
这将为您提供IEnumerable
,您可以通过执行var otherList = new List<object>(newVariable
.Where(a => a.Total > 0));
将相关部分放入列表中,或者只是在选择后添加.ToList(),如果您希望收集按原样
请注意,这只是LINQ的另一种表示法,结果是相同的。