簡體   English   中英

C# Linq GroupBy ==> 類與匿名類 --- 不同的結果

[英]C# Linq GroupBy ==> Class vs Anonymous class --- different result

我有以下代碼:

var rawGroupBEFORE = sqlRaw.GroupBy(x => new
{
    x.ID,
    x.P1,
    x.P2,
    x.P3,
    x.P4,
    x.P5,
    x.P6,
    x.P7,
    x.P8,              
}).ToList();

var rawGroup = sqlRaw.GroupBy(x => new RawDocument
{
    Id = x.ID,
    P1 = x.P1,
    P2 = x.P2,
    P3 = x.P3,
    P4 = x.P4,
    P5 = x.P5,
    P6 = x.P6,
    P7 = x.P7,
    P8 = x.P8,              
}).ToList();

結果是我在rawGroupBEFORE 1 元素中擁有的數據。 rawGroup給了我 2 個元素 ..... 錯誤的分組。 我已經使用自動 Visual Studio“創建缺少的屬性”操作創建了類 RawDocument。

任何想法為什么我應該得到這種行為?

最可能的解釋是匿名類型使用值相等,而RawDocument使用引用相等 由於每個項目都將獲得一個新的RawDocument對象,因此它們之間不會彼此相等。

RawDocument 實現 Equality 成員,或者給 GroupBy 一個 IEqualityComparer。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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