C# 使用列表<;T>;具有仅用于1项的MVC视图

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

我有一个viewmodel,它返回一个
列表
。我将其发送到多个视图,其中大多数视图需要该列表,因为它将包含多个
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完整的答案是你所说的,再加上第二个问题的简单“否”。获得荣誉。