2015-04-12 178 views
1

所有元素我想檢查我的數組類有字符串「不可用」包含的所有元素:檢查字符串

classApplicantNDatesCount[] applicantCounts = null; 
.... 
... 
applicantCounts = appCount.ToArray(); 

具體該陣列的「一部分」我需要通過搜索:

applicantCounts[i].NadraDateAvailableforApplicant = "All Requested Slots UnAvailable" 

所以我需要檢查是否所有的applicantCounts[i].NadraDateAvailableforApplicant元素包含字符串「不可用」。

我查看了Array.TrueforAll,但沒有找到一種方法將其應用於我的情況。

道歉,我不使用IM的正確的術語可能讓這個略顯不清覺得.....

+1

如果這個問題的答案和/或不爲你工作一樣的LINQ版本,那是因爲你的問題是不明確的 - 它們都提供代碼,逐字,即解決了什麼似乎是你的問題。你能提供一個滿足你的標準和不符合數據的輸入的詳細例子嗎? –

回答

7

LINQ吃這樣的事情早餐:

applicantCounts.All(a => a.NadraDateAvailableforApplicant.Contains("Unavailable")) 

我們使用.All在這裏檢查一個條件是否爲一個可枚舉的所有元素。

請注意,您在字符串搜索中有一個大寫錯別字。

+0

可能是價值較低的套管更強大的搜索 –

+1

半小時搜索谷歌/半小時嘗試和重試失敗的代碼/在5分鐘回答Stackoverflow偉大的東西永遠不會讓你失望 – AShah

2

使用Array.TrueForAll應該是這樣的:

bool all = Array.TrueForAll(
    applicantCounts, 
    x => x.NadraDateAvailableforApplicant.Contains("Unavailable") 
); 
1

至於@本傑明的做法,我會用IndexOf而不是Contains在那裏你可以指定一個StringComparison的情況下,你想不區分大小寫的搜索和或指定CultureInfo

applicantCounts.All(app => app.NadraDateAvailableforApplicant.IndexOf("Unavailable", StringComparison.OrdinalIgnoreCase) >= 0);