簡體   English   中英

Linq查詢不同

[英]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.BlockNopanelEntry.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM