繁体   English   中英

检查对象列表是否包含其属性具有特定值的对象

[英]Checking if a list of objects contains an object whose property has a specific value

我有一个List<Contract>

每个合同都有一个“ ObservableCollection”

class Contract
   {
   private ObservableCollection<Operation> listOpAss;
   public ObservableCollection<Operation> ListOpAss
   {
      get { return listOpAss; }
      set
      {
         if (this.listOpAss != value)
         {
            this.listOpAss = value;
            this.NotifyPropertyChanged("ListOpAss");
         }
      }
   }
   ...
}

class Operation
{
   public long ID{get;set;}
   public long ID{get;set;}
   public long ID{get;set;}
}

例如,我想获取所有操作ID为7的合同的清单,有没有办法使用linq做到这一点?

您可以尝试这样的事情:

var result = contractsList.Where(x=>x.ListOpAss.Any(y=>y.ID == 7)).ToList();

基本上,我们通过使用Where方法并在其中传递谓词来过滤列表。 在这种情况下,谓词应基于检查每个合同的对应列表中是否存在操作。 为此,我们使用Any方法。

当我们传递的谓词为true时, Any方法返回true。 在这种情况下,我们需要检查ListOsAss是否存在ID为7的任何Operation

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM