.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&…