我有一些代码,虽然简单或许并不是立即显而易见的.
I found @(Model.Count() == 0 ? "no" : Model.Count().ToString()) @(Model.Count() == 1 ? "person" : "people")
@foreach (var item in Model) {
<div>@item.Name at @item.Email</div>
}
Run Code Online (Sandbox Code Playgroud)
在我写这么多代码之前,我想知道这是否是一个很好的方法.
因此问题是,在.NET中有更好的框架方式,或者Ternary方法很好
前提是显而易见的
在我看来,在这种Ternary情况下使用条件运算符是绝对正确的.
有经验的开发人员在不考虑它的情况下理解它,但如果你想让初学者易于阅读,你也可以使用if和else构造.
但我会Any()在评论中提到@ I4V.
I found @(Model.Any() ? Model.Count().ToString() : "no") @(Model.Count() == 1 ? "person" : "people")
@foreach (var item in Model) {
<div>@item.Name at @item.Email</div>
}
Run Code Online (Sandbox Code Playgroud)
如果你在几个地方这样做,扩展方法可以解决你的问题(可读性和简化代码)
public static string PersonCountString(this IEnumerable<Person> personList)
{
var count = personList.Count();
return String.Format("{0} {1}", count > 0 ? count : "no",
count == 1 ? "person" : "people");
}
...
I found (@Model.PersonCountString())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
364 次 |
| 最近记录: |