簡體   English   中英

Linq Groupby具有相同名稱的多個列(匿名類型不能具有具有相同名稱的多個屬性)

[英]Linq Groupby multiple columns with the same name (An anonymous type cannot have multiple properties with the same name)

我有一個對象數組,每個對象有3個客戶端,每個客戶端都有一個客戶端代碼和一個客戶端名稱。 我想使用C#Linq按客戶端代碼對不同對象進行分組。

對象[0]:客戶端“ pickupFrom”具有“ clientCode”客戶端“ loadAt”具有“ clientCode”客戶端“ deliverTo”具有“ clientCode”

object [1]:客戶端“ pickupFrom”具有“ clientCode”客戶端“ loadAt”具有“ clientCode”客戶端“ deliverTo”具有“ clientCode”

我想按這些客戶端分組,並獲得具有一個對象的數組,因為這些客戶端是相同的。

使用Linq我可以做到:

Objects[] GroupedDistinct = 
       ungroupedObjects.GroupBy(line => new { line.pickupFrom.clientCode,
                                              line.LoadAt.clientCode,
                                              line.deliverTo.clientCode })
                       .Select(x => x.First())
                       .ToArray();

這里的問題是,當將這些參數傳遞給groupby時,我不能多次傳遞clientCode,因為它多次定義了名稱為clientCode的字符串,即使它不是來自同一客戶端對象。

錯誤是“匿名類型不能具有相同名稱的多個屬性”,我理解您不能多次傳遞相同的字符串名稱,但這就是使用clientCode完成這些對象(客戶端)的方式。 有沒有解決的辦法?

只是給他們唯一的名字。 另外,我認為您打算使用line而不是object

Objects[] GroupedDistinct = ungroupedObjects
    .GroupBy(line => new { 
        PickFromClientCode = line.pickupFrom.clientCode,
        LoadAtClientCode = line.LoadAt.clientCode,
        DeliverToClientCode = line.deliverTo.clientCode })
    .Select(x => x.First())
    .ToArray();

暫無
暫無

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

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