我正在尋找一種僅回傳陣列中不同元素的方法,但這必須基于某個屬性,可以復制陣列的其他屬性。例如:
var elements = [{id:123,name:"abc",start:12:00:00},{id:123,name:"abc",start:12:00:00},
{id:123,name:"abc",start:1:00:00},{id:123,name:"def",start:12:00:00}]
我們只想根據唯一的開始時間和名稱回傳結果:
[{id:123,name:"abc",start:12:00:00},{id:123,name:"abc",start:1:00:00},{id:123,name:"def",start:12:00:00}]
每個元素的 name 或 start 屬性必須不同 {id:123,name:"abc",start:12:00:00} => 僅回傳一次,因為有兩個具有相同名稱和 start 的元素。
我尋找 DistinctBy 功能,但它不允許我使用該功能。只有 Distinct() 函式。
uj5u.com熱心網友回復:
最簡單的方法是使用 a GroupBy,所以如果你想有一個唯一的名字或開始你可以這樣做:
var elements = [
{id:123,name:"abc",start:12:00:00},
{id:123,name:"abc",start:12:00:00},
{id:123,name:"abc",start:1:00:00},
{id:123,name:"def",start:12:00:00}
];
var unique = elements
.GroupBy(e => new {e.name, e.start})
.Select(g => g.First())
.ToArray(); // or ToList, or just leave it as an IEnumerable
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/428923.html
上一篇:物體框架SQL查詢生成
