var list = new[]
{
new { maker="Volvo", type=1, model=15},
new { maker="Volvo", type=8, model=10},
new { maker="Volvo", type=8, model=100},
new { maker="Volvo", type=8, model=40},
new { maker="Volvo", type=6, model=5},
new { maker="Volvo", type=2, model=0},
new { maker="Volvo", type=1, model=2},
new { maker="GM", type=1, model=0},
new { maker="GM", type=0, model=20},
new { maker="GM", type=9, model=5},
new { maker="GM", type=9, model=50},
new { maker="GM", type=9, model=25},
};
var results = list
.GroupBy(x => x.maker, (key, g) => g.OrderByDescending(e => e.type).First())
.ToList();
退貨
{ 制造商 = 沃爾沃,型別 = 8,型號 = 10 }
{ 制造商 = GM,型別 = 9,型號 = 5 }
這對我想要的東西很封閉,如果我繼續將它擴展到
var results = list
.GroupBy(x => x.maker, (key, g) => g.OrderByDescending(e => e.type).GroupBy(z => z.type, (key1, y) => y.OrderByDescending(u => u.model).First()))
.ToList();
不回傳任何內容
與預期結果
{ 制造商 = 沃爾沃,型別 = 8,型號 = 100 }
{ 制造商 = GM,型別 = 9,型號 = 50 }
那么我該如何解決呢?
uj5u.com熱心網友回復:
你只需要一個ThenByDescending而不是另一個GroupBy:
var results = list
.GroupBy(x => x.maker,
(key, g) => g.OrderByDescending(e => e.type)
.ThenByDescending(e => e.model)
.First())
.ToList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/523792.html
標籤:C#林克
上一篇:要更新的動態屬性名稱
