2015-10-29 3 views
0

У меня есть некоторые переменные типа строки, которые содержатся в списке, как такПолучить длину каждого элемента в списке C#

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

То, что я хотел бы TODO это проверить длину каждого элемента в списке, и возвращает false, если какой-либо элемент имеет длину 0.

Я попытался использовать что-то вроде BenOneInput.Any(item => item.Length.Equals(0)), но как только один элемент в списке имеет длину больше 0, вся вещь вернётся.

Возможно ли это?

+0

Я не знаю, почему вы редактировали вопрос, чтобы удалить отрицанием перед 'Any' вызов, потому что должны были работать. – poke

ответ

1

Вам просто нужно использовать All

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

Он будет проверять, если все значения имеют Length не будучи 0

или как @Asad Saeeduddin

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

Извините, я ошибался в отношении 'Any', я думаю, что оба будут выполнять то же самое. «Все», вероятно, будут иметь короткое замыкание, если есть какое-либо противоречие. –

+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)); 
Смежные вопросы