Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果集合包含满足谓词的元素,LINQ将返回true_Linq_Nullable - Fatal编程技术网

如果集合包含满足谓词的元素,LINQ将返回true

如果集合包含满足谓词的元素,LINQ将返回true,linq,nullable,Linq,Nullable,我想简化语法。我想我能用吗?或但是我不太明白怎么做。你可以用。比如说 public bool AnyBroken => (Statuses != null) && Statuses.Count(s => s == Status.Broken) > 0; 您可以尝试这种方式,链接为实时演示 请注意: 但是如果status为null呢?status?将返回null,该值不等于true。因此,任何损坏的都将被评估为false。 public bool AnyBrok

我想简化语法。我想我能用吗?或但是我不太明白怎么做。

你可以用。比如说

public bool AnyBroken => (Statuses != null) && Statuses.Count(s => s == Status.Broken) > 0;

您可以尝试这种方式,链接为实时演示

请注意:


但是如果status为null呢?status?将返回null,该值不等于true。因此,任何损坏的都将被评估为false。
public bool AnyBroken => (Statuses != null) && Statuses.Count(s => s == Status.Broken) > 0;
public bool AnyBroken => Statuses?.Any(x=>x == Status.Broken)==true;
using System;
using System.Linq;

public class Program
{
    public static void Main()
    {
        var listContainBroken = new [] { Status.Broken,  Status.Unspecified }; 
        var listDoesNotContainBroken = new [] { Status.Unspecified }; 

        Console.WriteLine("List Contain Broken: " + listContainBroken?.Any(s => s == Status.Broken));
        Console.WriteLine("List Does not Contain Broken: " + listDoesNotContainBroken?.Any(s => s == Status.Broken));
    }

    public enum Status
    {
      Unspecified = 0,
      Good = 1,
      Broken = 2
    }
}