我想检查我的数组类是否包含所有元素的字符串“Unavailable”:
classApplicantNDatesCount[] applicantCounts = null;
....
...
applicantCounts = appCount.ToArray();
特别是我需要搜索的数组的“部分”:
applicantCounts[i].NadraDateAvailableforApplicant = "All Requested Slots UnAvailable"
所以我需要检查所有applicantCounts[i].NadraDateAvailableforApplicant
元素是否包含字符串“Unavailable”。
我调查了Array.TrueforAll
,但未找到将其应用于我的位置的方法。
道歉我不认为我使用了正确的术语,这可能会使这个有点不清楚.......
答案 0 :(得分:7)
LINQ早餐吃这种东西:
applicantCounts.All(a => a.NadraDateAvailableforApplicant.Contains("Unavailable"))
我们在这里使用.All
来检查可枚举的所有元素的条件是否为真。
请注意,您在字符串搜索中有大写字母错误。
答案 1 :(得分:2)
使用Array.TrueForAll
将如下所示:
bool all = Array.TrueForAll(
applicantCounts,
x => x.NadraDateAvailableforApplicant.Contains("Unavailable")
);
答案 2 :(得分:1)
对于@ Benjamin的方法,我会使用IndexOf
代替Contains
,您可以指定StringComparison
,以防您不喜欢不区分大小写的搜索或指定CultureInfo
:
applicantCounts.All(app => app.NadraDateAvailableforApplicant.IndexOf("Unavailable", StringComparison.OrdinalIgnoreCase) >= 0);