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