C# 使用列表<;T>;具有仅用于1项的MVC视图
我有一个viewmodel,它返回一个C# 使用列表<;T>;具有仅用于1项的MVC视图,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个viewmodel,它返回一个列表。我将其发送到多个视图,其中大多数视图需要该列表,因为它将包含多个T类型的对象。我唯一的问题是,我有一个视图只使用一个T对象。所以本质上它是一个列表,其中有一个对象。在我的视图中使用foreach循环从列表/模型中取出一项,有没有一种简单的方法?或者我应该为该视图创建一个新的viewmodel吗?List myList=/。。。 List<T> myList = //... T myT = myList[0]; T myT=myList[0
列表
。我将其发送到多个视图,其中大多数视图需要该列表,因为它将包含多个T
类型的对象。我唯一的问题是,我有一个视图只使用一个T
对象。所以本质上它是一个列表,其中有一个对象。在我的视图中使用foreach
循环从列表/模型中取出一项,有没有一种简单的方法?或者我应该为该视图创建一个新的viewmodel吗?List myList=/。。。
List<T> myList = //...
T myT = myList[0];
T myT=myList[0];
是的,您可以在System.Linq命名空间下使用Linq扩展方法。为此,有几种方法允许您使用各种条件从列表中选择数据,而无需使用foreach循环
IEnumerable的扩展方法
如果视图是列表的强类型视图,请使用视图中的扩展方法。使用
List.First()
避开显式循环。如果有空列表的机会,考虑FirstOrDefault。如果列表中有多个项目是错误条件,请使用Single(或SingleOrDefault)。@AnthonyPegram-您应该将其作为答案。@Bobson,它不够完整,无法作为答案。如果是的话,这个问题显然是重复的,因为“获取第一项”已经被问得够多了。我觉得答案也应该针对多视图模型问题的MVC部分,而我在MVC方面没有任何真实可信的经验(我在Silverlight中使用MVVM的经验非常有限)。@AnthonyPegram完整的答案是你所说的,再加上第二个问题的简单“否”。获得荣誉。