2

以下 IF 语句检查 ListexceptionCM 是否包含下拉列表的选定值。

List<string> ExceptionCM = new List<string>;
if(exceptionsCM.Any(s => ddl_model.SelectedValue.Contains(s)) )
{
       //do something
}

List<string> ExceptionPM;
List<string> ExceptionDL;
List<string> ExceptionCL;

我想更改语句,所以我可以检查 4 列表是否不包含下拉列表的选定值。你可以帮帮我吗 ?

4

3 回答 3

2

你可以这样做:

//combine all lists into a single IEnumerable<string>
IEnumerable<string> unionList = ExceptionCM.Union(ExceptionPM)
                                              .Union(ExceptionDL)
                                                  .Union(ExceptionCL);

//check against union list
if(unionList .Any(s => !ddl_model.SelectedValue.Contains(s)) )
{
   //do something
}

像这样的东西。

于 2012-09-18T07:58:24.553 回答
1
List<string> ExceptionCM = new List<string>;
foreach(List<yourType> list in YourLists<List<YourType>>)
{
    if(exceptionsCM.Any(s => !list.Contains(s)) )
    {
       //do something
    }
{
List<string> ExceptionPM;
List<string> ExceptionDL;
List<string> ExceptionCL;

只需添加!(不是)运算符之前返回布尔值的ddl_model.SelectedValue.Contains(s)

于 2012-09-18T07:51:59.133 回答
1

您可以使用All以确保 4 个列表中的所有项目不包含:

var exceptions = new List<List<string>>()
{
    ExceptionCM, 
    ExceptionPM, 
    ExceptionDL, 
    ExceptionCL
}

if (exceptions.SelectMany(ex => ex)
              .All(s => !ddl_model.SelectedValue.Contains(s)))
{
}

编辑: Any在这种情况下不正确,因为它确定集合的任何元素是否满足条件。

于 2012-09-18T08:00:08.110 回答