循环列表并将其元素与条件c#进行比较

时间:2018-05-17 13:23:05

标签: c# list foreach

我需要遍历列表。应将每个元素与2个条件进行比较。

问题是,对于一个元素,结果可以是True,另一个是False。我必须保留所有这些结果并进行操作OR,以获得最终结果。

foreach (var elem in mappingList)
{
   if (elem._mappingStatus == enum_MappingStatus.E_MAPPING_OK 
     || elem._mappingStatus == enum_MappingStatus.E_MAPPING_OK_END)
    {
        statusConfiguration = true;
    }
    else
    {
        statusConfiguration = false;
    }
}

我不知道如何保持所有元素的statusConfiguration然后比较它们的问题。如果在某个结果中,其中一个结果是假的,那么最终结果也应该是假的。

提前致谢。

2 个答案:

答案 0 :(得分:6)

使用Any()确定是否存在具有这些条件的任何项目

  

如果在结果中,其中一个结果为假,那么最终结果应为   也是假的

statusConfiguration = mappingList.Any(x => 
                      x._mappingStatus != enum_MappingStatus.E_MAPPING_OK &&       
                      x._mappingStatus != enum_MappingStatus.E_MAPPING_OK_END);

答案 1 :(得分:2)

你应该在statusConfiguration'falsed'之后中断foreach。

bool statusConfiguration = true;
foreach (var elem in mappingList)
{
    if (elem._mappingStatus == enum_MappingStatus.E_MAPPING_OK 
    & elem._mappingStatus == enum_MappingStatus.E_MAPPING_OK_END)
    {
         statusConfiguration = true;
    }
    else
    {
        statusConfiguration = false;
        break;
    }
}
if (!statusConfiguration) {finalResult = false;}