.net 如何筛选父列表<&燃气轮机;当我们在子列表上应用条件时?
当我们对子列表应用条件时,如何筛选父列表.net 如何筛选父列表<&燃气轮机;当我们在子列表上应用条件时?,.net,linq,list,.net,Linq,List,当我们对子列表应用条件时,如何筛选父列表 public class VendorEntities { public int VendorId { get; set; } public string VendorName { get; set; } public List<ItemEntities> ItemDealdetails { get; set; } } public class ItemEntities { public i
public class VendorEntities
{
public int VendorId { get; set; }
public string VendorName { get; set; }
public List<ItemEntities> ItemDealdetails { get; set; }
}
public class ItemEntities
{
public int ItemId { get; set; }
public string ItemName { get; set; }
public int TenantId { get; set; }
}
List<VendorEntities> objVenderList = new List<VendorEntities>();
objVenderList = objVendorBL.GetVendorName();
var rList = (from a in objVenderList
from b in a.ItemDealdetails
where b.ItemName.Contains("Computer")
orderby a.VendorName descending
select a).ToList().Distinct();
公共类供应商实体
{
public int VendorId{get;set;}
公共字符串VendorName{get;set;}
公共列表ItemDealdetails{get;set;}
}
公共类项实体
{
公共int ItemId{get;set;}
公共字符串ItemName{get;set;}
public int TenantId{get;set;}
}
List objVenderList=新列表();
objVenderList=objVendorBL.GetVendorName();
var rList=(来自objVenderList中的a)
从a中的b开始
其中b.ItemName.包含(“计算机”)
orderby a.VendorName降序
选择一个.ToList().Distinct();
现在我想搜索那些
ItemName
包含Computer
且存储在子列表itemtenties
中的供应商。我怎么能做到?请给我一些建议。您可以使用可枚举。任何:
var rList = objVenderList
.Where(v => v.ItemDealdetails.Any(d => d.ItemName.Contains("Computer")))
.OrderByDescending(v => v.VendorName)
.ToList();
请注意,我省略了您的Distinct
,因为它只删除重复引用,直到您没有实现IEquatable
或覆盖Equals
+GetHashCode
这里的查询语法相同:
var filteredByItemNameComputer =
from vendor in objVenderList
where vendor.ItemDealdetails.Any(d => d.ItemName.Contains("Computer"))
orderby vendor.VendorName descending
select vendor;
var rList=filteredByItemNameComputer.ToList();
你发帖的时候我也在打同样的东西。伟大的思想都很相似。谢谢@Tim,但是这段代码生成了一个对象引用。错误。@AjayKumarSantra:那你就有另一个问题了。为什么itemdaldetails
或ItemName
为空?当我转换结果“ToList()”时,它会显示错误,而且“objVenderList”不是空的,但是一些子列表“ItemEntities”可以返回空值。@AjayKumarSantra:您还没有提到,然后使用。在哪里(v=>v.ItemDealdetails!=null&&…
或在查询语法中:where vendor.ItemDealdetails!=null&…