C#列表上的条件声明

问题描述:

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

既然我的视图是强类型的这个ViewModel,我需要检查一些条件之前显示字段。C#列表上的条件声明

从我的控制器操作,我通过列表

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不是一个有效的方法)。

告诉我这样做的正确方法。

你可以像下面这样做

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

感谢KIM它的工作 – RollerCosta 2012-03-26 10:48:26

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

试试这个:

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

试试这个:

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

IsNotEmpty是有效的方法?? – RollerCosta 2012-03-26 10:38:14

+0

哈哈,复制粘贴错误。我已经更新了我的答案。 – tobias86 2012-03-26 10:39:38

如果是你的名单满弦的,那么你应该能够调用这样

String.IsNullOrEmpty(****) 

的方法如果你还有其他的数据类型,你仍然可以自己写一个方法来完成同样的工作。