LINQ查询检查一个集合是否包含两个具有特定值的记录?

msh*_*hwf 2 c# linq

我正在寻找一个只有当一组数据至少有一条带有State == 0另一条记录的记录时才返回true的查询State > 0

我有这个方法:

  public bool HasHistory(Guid id)
        {
            return GetHistory(id).Any(x => x.State == 0); //&&x.State > 0 ?!
        }
Run Code Online (Sandbox Code Playgroud)

我不知道如何实现这一点,因为大多数LINQ扩展方法分别迭代每个元素!

Vla*_*ian 10

这个怎么了?

  public bool HasHistory(Guid id)
  {
      var history = GetHistory(id);
      return history.Any(x => x.State == 0) && history.Any(x => x.State > 0);
  }
Run Code Online (Sandbox Code Playgroud)

实际上,如果你正在使用大数据,这很糟糕,因为你枚举了2次而不是1次.否则,只需使用此解决方案.