public enum Status
{
Unspecified = 0,
Good = 1,
Broken = 2
}
IEnumerable<Status> Statuses;
如果Statuses
是null
或empty
,我想返回false
。
如果Statuses
包含一个或多个Broken
,我想返回true
。
public bool AnyBroken => (Statuses != null) && Statuses.Count(s => s == Status.Broken) > 0;
我想简化语法。我想我可以使用?
或??
,但我不太清楚如何使用。
答案 0 :(得分:1)
您可以使用Enumerable.Any。例如
public bool AnyBroken => Statuses?.Any(x=>x == Status.Broken)==true;
答案 1 :(得分:0)
您可以尝试通过这种方式链接到实时演示here
请注意:You has just use Null-conditional operators
of C# 6 Feature or higher version
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
}
}