簡體   English   中英

嵌套列表中的不同項目

[英]Distinct items in the nested list

有以下型號:

public class VMDeliveryList  //[View-model]
{
    public List<ContractDelivery> ContractDeliveryList { get; set; }
}

public class ContractDelivery
{
    public Contract Contract { get; set; }
    public List<Delivery> DeliveryList { get; set; }
}

public class Delivery
{
    public int Id { get; set; }
    public Employee Employee { get; set; }
}

public class Employee
{
    public int Id { get; set; }
}

我需要為不同的Employee.Id創建foreach循環感謝您的建議。

您可以使用SelectMany展平列表,然后使用Select獲得Id

foreach(int id in viewModel.ContractDeliveryList.SelectMany(a => a.DeliveryList)
                                                .Select(b => b.Employee.Id)
                                                .Distinct() )
{
    ....
}

假設您有視圖模型的vmDeliveryList實例。 使用lambda語法:

var ids = vmDeliveryList.ContractDeliveryList
                        .SelectMany(cdl => cdl.DeliveryList)
                        .Select(dl => dl.Employee.Id)
                        .Distinct();

不幸的是,查詢語法中沒有Distinct()方法,因此您只能選擇所有id,然后應用與眾不同的方法:

var allIds = from cdl in vmDeliveryList.ContractDeliveryList
             from dl in cdl.DeliverList
             select dl.Employee.Id;

var ids = allIds.Distinct();

暫無
暫無

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

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