假設我有以下資料:
EntryID | ColValueText
1113 20
1113 19
1024 20
1113 20
1024 21
1113 23
所以在 C# 中使用 LINQ 或任何方法我想像這樣過濾資料
EntryID | ColValueText
1113 23
1024 21
即:按兩列分組,但僅針對每個 entryid 獲取 colvaluetext 的最后一個值。我正在附上我的代碼,但我無法獲得針對 entryid 的最后一個 colvaluetext。
var groupSalesPersonData = (from r in sp
group r by new { r.EntryID, r.ColValueText }
into results
select new GroupByCommonDto
{
ParentGroupById = results.Select(a => a.EntryID).LastOrDefault(),
FieldValue = results.Select(a => a.FieldValue).LastOrDefault(),
Order = results.Sum(x => x.Order),
VehicleProfit = results.Sum(x => x.VehicleProfit),
ColValueText = results.Select(a => a.ColValueText).LastOrDefault()
})
.ToList();
uj5u.com熱心網友回復:
我不會使用 Linq 來解決這個問題。您可以使用 Aggregate 來完成,因為這是一個聚合問題。我會使用一個簡單的 foreach 和一個字典
uj5u.com熱心網友回復:
var groupSalesPersonData = (from r in sp
group r by new { r.EntryID}
into results
select new GroupByCommonDto
{
ParentGroupById = results.Select(a => a.EntryID).LastOrDefault(),
ColValueText = results.Select(a => a.ColValueText).LastOrDefault() //Assuming this is a text value and you always want last in the collection.
})
.ToList();
ColValueText 如果這是使用正確型別和正確排序順序的數字,則始終為您提供正確的值
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/377625.html
