![](/img/trans.png)
[英]Get minimum and maximum time value from list of object property using Linq
[英]Get the objects with the maximum value for a specific property from a list using LINQ
我有一個Beam
對象列表。 每個Beam
類都有X
, Y
屬性作為坐標,並且還具有Height
屬性。
現在這是我的初始列表:
List1 = {beam1, beam2, beam3, beam4}
beam1 = {X = 0, Y = 0, Height = 40}
beam2 = {X = 200, Y = 0, Height = 40}
beam3 = {X = 200, Y = 0, Height = 60}
beam4 = {X = 400, Y = 0, Height = 40}
如您所見, beam2和beam3在同一點,我想要一個列表,在該列表中,我在每個不同的點僅具有最大Height
的波束。
因此,使用LINQ
的最終列表為:
List2 = {beam1, beam3, beam4}
您可以使用GroupBy
根據X
和Y
對它們進行分組,然后從每個組中選擇具有最大高度的項目:
beams.GroupBy(b => new { b.X, b.Y })
.Select(g => g.First(x => x.Heigth == g.Max(h => h.Height)))
.ToList();
我個人將使用MaxBy
方法獲得最大光束。 高度:
beams.GroupBy(b => new { b.X, b.Y })
.Select(g => g.MaxBy(x => x.Heigth))
.ToList();
嘗試這個:-
var query = List1.GroupBy(x => new { x.X, x.Y }).Select(x => x.First(y => y.Height == x.Max(z => z.Height)));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.