簡體   English   中英

LINQ-根據集合屬性選擇匿名類型

[英]LINQ - Select anonymous type which based on a collection property

我有以下課程:

public class DistributionItem
{

    public int DeviceID { get; set; }
    public string DeviceName { get; set; }
    public double? Export { get; set; }
    public double? Import { get; set; }
    public List<double?> Tarrifs { get; set; }
    public bool HasChild { get; set; }
    public int OrderNum { get; set; }
    public double PF { get; set; }
    public int? MaxDmd { get; set; }
    public string ImageUrl { get; set; }
    public int ParentID { get; set; }
    public double? Total { get; set; }
}

我想在該類的列表上進行LINQ Select ,以拉出如下所示的某些屬性:

        return data.Select(x => new
        {
            x.DeviceID,
            x.DeviceName,
            x.HasChild,
            x.KwhImport,
            x.KwhExport,
            x.MaxDmd,
            x.ParentID
        }).ToList();

如何將Tarrifs值作為單獨的屬性添加到匿名對象?

除非您在編譯時知道列表中的項目數,否則就不能。 匿名類型的想法是它們是靜態類型的 編譯器在編譯時就知道所有屬性及其類型是什么。 如果您不知道該信息,則不能使用。

例如,如果您知道總是有兩個項目,則可以執行以下操作:

return data.Select(x => new
{
    x.DeviceID,
    x.DeviceName,
    x.HasChild,
    x.KwhImport,
    x.KwhExport,
    x.MaxDmd,
    x.ParentID,
    Tarrifs1 = x.Tarrifs[0],
    Tarrifs2 = x.Tarrifs[1],
}).ToList();

暫無
暫無

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

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