C# 使用lambda表达式从一个列表中的一个列表获取值
我不熟悉lambda表达式,所以我尝试解决一个问题,但我不能。那么,谁能为这个问题提出解决方案呢 我有一类顾客。在内部,我创建了另外3个类,并为3个类创建了可观察集合。我为这个客户创建了一个可观察集合C# 使用lambda表达式从一个列表中的一个列表获取值,c#,linq,lambda,C#,Linq,Lambda,我不熟悉lambda表达式,所以我尝试解决一个问题,但我不能。那么,谁能为这个问题提出解决方案呢 我有一类顾客。在内部,我创建了另外3个类,并为3个类创建了可观察集合。我为这个客户创建了一个可观察集合 ObservableCollection<Customer> customer2; public class Customer { public string CusName { get; set; } public int CusAge
ObservableCollection<Customer> customer2;
public class Customer
{
public string CusName { get; set; }
public int CusAge { get; set; }
public ObservableCollection<Bankdetails> bankdetails;
public ObservableCollection<order> orderlist;
public ObservableCollection<orderdetails> orderdetailslist;
public class Bankdetails
{
public string Bankaccno { get; set; }
public string bankname { get; set; }
public int bankid { get; set; }
}
public class order
{
public string ordername { get; set; }
public string orderid { get; set; }
}
public class orderdetails
{
public string orderid { get; set; }
public string itemname { get; set; }
public int itemqty { get; set; }
}
}
那么lambda查询将是什么。请任何人提出建议。马特的解决方案扩展为
,问题中的将是:
var xxx = customer2.SelectMany(cus =>
cus.bankdetails.SelectMany(bank =>
cus.orderlist.SelectMany(ord =>
cus.orderdetailslist.Select(orddet => new
{
cus.CusAge,
cus.CusName,
bank.Bankaccno,
bank.bankname,
orddet.itemname,
orddet.itemqty
}
)
)
)
);
var xxx = customer2.SelectMany(cus =>
cus.bankdetails.SelectMany(bank =>
cus.orderlist.SelectMany(ord =>
cus.orderdetailslist.Where(orddet => orddet.orderid == ord.orderid)
.Select(orddet => new
{
cus.CusAge,
cus.CusName,
bank.Bankaccno,
bank.bankname,
orddet.itemname,
orddet.itemqty
}
)
)
)
);
这里Nixex09
如果你正在学习Lambda的,那么开始阅读这里我真的不明白这个问题。你到底想做什么?为什么您编写的查询不适合您?你想要什么结果?您实际得到了什么结果?当您正在学习LINQ时,请尝试使用LINQPad。它的一个功能是能够向您显示查询表达式的Lambda版本。谢谢…您收到了我的问题。这只是为了学习。无论如何,您节省了我很多时间。我们如何在此表达式中添加“where”条件
var xxx = customer2.SelectMany(cus =>
cus.bankdetails.SelectMany(bank =>
cus.orderlist.SelectMany(ord =>
cus.orderdetailslist.Select(orddet => new
{
cus.CusAge,
cus.CusName,
bank.Bankaccno,
bank.bankname,
orddet.itemname,
orddet.itemqty
}
)
)
)
);
var xxx = customer2.SelectMany(cus =>
cus.bankdetails.SelectMany(bank =>
cus.orderlist.SelectMany(ord =>
cus.orderdetailslist.Where(orddet => orddet.orderid == ord.orderid)
.Select(orddet => new
{
cus.CusAge,
cus.CusName,
bank.Bankaccno,
bank.bankname,
orddet.itemname,
orddet.itemqty
}
)
)
)
);