2015-10-29 19 views
0

每個項目的長度我必須包含在一個列表,像這樣獲取名單C#

new List<string>{ varFullName, varHouseNameNumber, varPostCode, varRelationship, varPercOfBenefit } 

想我的待辦事項是檢查列表中的每個項目的長度的一些字符串類型變量,並且如果任何項目的長度爲0,則返回假。

但我儘量使用類似BenOneInput.Any(item => item.Length.Equals(0))的東西,但只要列表中的1個項目的長度大於0,整個事件就會返回true。

這可能嗎?

+0

我不知道爲什麼你編輯的問題'Any'調用之前刪除的否定,因爲這應該在工作。 – poke

回答

1

你只需要使用All

var allNonZero = values.All(x=>x.Lenght > 0); 

它會檢查是否所有值都具有Length不爲0

OR爲@Asad Saeeduddin

var allNonZero = !values.Any(x=>x.Length==0); 
+0

對不起,我錯了關於「任何」的事情,我認爲兩者的表現都一樣。如果有任何矛盾,'全部'可能會短路。 –

+0

@AsadSaeeduddin但它是另一種語法選項:) – wudzik

+0

不應該是'var anyZero = values.Any(x => x.Length == 0)'? –

0

使用All

var all = list.All(x => x.Length > 0); 
1

結果是正確的,因爲Any()檢查列表中是否存在長度爲0的任何項目。如果存在,則返回true。你只需要否定你的結果。

var list = new List<string> {"test", "", "test2"}; 
var result = !list.Any(item => item.Length.Equals(0)); 
0

試試這個:

List<string> BenOneInput = new List<string>{ "varFullName", "varHouseNameNumber", "varPostCode", "varRelationship", "varPercOfBenefit" }; 
bool result = BenOneInput.All(item => !item.Length.Equals(0));