[英]Distinct in Linq query
我如何才能完成這項獨特的工作:
var blockIdMap = (from panelEntry in panelEntries
select new {panelEntry.BlockNo, panelEntry.BlockID})
.Distinct()
.ToDictionary(mc => mc.BlockNo , mc => mc.BlockID);
我需要只有BlockNo的唯一條目和它的BlockId,因為我將它們輸入到Dictionary並且BlockNo應該是唯一的。 我只想拿第一個。
var blockIdMap = panelEntries.GroupBy(pe => pe.BlockNo)
.ToDictionary(k => k.Key, v => v.First())
在這種情況下,你的linq查詢不起作用。 .Distinct()
方法等於panelEntry.BlockNo
和panelEntry.BlockID
,而不僅僅是panelEntry.BlockNo
。 因此,解決方案可以使用MoreLinq和方法.DistinctBy()
:
var blockIdMap = (from panelEntry in panelEntries
select new {panelEntry.BlockNo, panelEntry.BlockID})
.DistinctBy(mc => mc.BlockNo)
.ToDictionary(mc => mc.BlockNo , mc => mc.BlockID);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.