列表中的C#条件语句

时间:2012-03-26 10:06:08

标签: c# asp.net asp.net-mvc-3 list

Public class AbcViewModel
{
    public string native{get; set;}
    public string other{get; set;}
    public List<AbcViewModel> abcList{get; set;}
}

既然我的View强烈输入了这个ViewModel,我需要在显示字段之前检查一些条件。

从我的Controller Action我传递列表

public ActionResult actionName() 
{
    AbcViewModel viewModel=new AbcViewModel();
    viewModel=model.getAbcList();
    return View(viewModel);
}

条件:如果我的列表中包含n计数。然后,如果任何索引的任何“本机元素”保持某个值,则显示其他字段,反之亦然。

即。 像这样的东西

@if (Model.languageList.Any(x => x.nativeLanguage.IsNotEmpty() == false)
{ 
    @LabelFor(x=>x.other) 
}
else
{
    @LabelFor(x=>x.native)
}

这不是我认为的正确语法(IsNotEmpty不是有效的方法)。

告诉我正确的方法。

4 个答案:

答案 0 :(得分:1)

你可以这样做

@if (Model.languageList.Any(x=> !string.IsNullOrEmpty(x.nativeLanguage))==false){ @LabelFor(x=>x.other) }
    else{@LabelFor(x=>x.native)}

答案 1 :(得分:1)

使用String.IsNullOrEmpty Method检查指定的字符串是空还是空字符串。

试试这个:

@if (!Model.languageList.Any(x=> string.IsNullOrEmpty(x.nativeLanguage))
{ 
  @LabelFor(x=>x.other) 
 }
 else 
 {
   @LabelFor(x=>x.native)
  }

答案 2 :(得分:0)

试试这个:

@if (Model.languageList.Any(x => string.IsNullOrEmpty(x.nativeLanguage))
{ 
    @LabelFor(x => x.other) 
}
else
{
    @LabelFor(x => x.native)
}

答案 3 :(得分:0)

如果您的列表中包含字符串,那么您应该可以调用这样的方法

String.IsNullOrEmpty(****)

如果您还有其他数据类型,您仍然可以自己编写一个方法来执行相同的工作。