2015-10-29 23 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));