System.Collections.Generic.List不包含“select”的定义

这个错误发生在我的“Views”文件夹中的许多文件中:

'System.Collection.GenericList'不包含接受'System.Collections.GenericList'types的第一个参数的'select'的定义(你是否缺lessusing指令或程序集引用?)

我已经尝试在文件顶部附近添加一些“使用System …”和其他基本库,但添加这些似乎没有任何帮助。

这是我的错误发生在以.BindTo(Model.Users.Select(o => o.UserName))开头的行中:

任何帮助将不胜感激。 谢谢!

  <div id="editRolesContainer" class="detailContainer detailContainer4"> <header class="sectionheader"> Add Roles </header> <ul id = "AdminSelectUserContainer" > <li> <ul style="padding: 0 0 0 5px"> <li>Select User : </li> <li> @using (Html.BeginForm("srch_GetUserRoles", "Admin", new { view = "Users_Roles" }, FormMethod.Post, new { name = "srch_GetUserRoles" })) { @(Html.Telerik().AutoComplete() .Name("acx_SelectUser") .BindTo(Model.Users.Select(o => o.UserName)) .HtmlAttributes(new { type "submit" }) .HtmlAttributes(new { @class = "SearchBox"}) .AutoFill(true) .Filterable((filtering => { filtering.FilterMode(AutoCompleteFilterMode.Contains); })) ) } </li> </ul> ... ... </div> 

只要添加这个名字空间,

 using System.Linq; 

您需要将视图中包含System.Linq命名空间,因为Select是一种扩展方法。 你有几个select如何做到这一点:

@using System.Linq添加到您的cshtml文件的顶部。

如果您发现您将在许多视图中经常使用这个名称空间,则可以通过修改Views文件夹(不是根目录)中的web.config来为所有视图执行此操作。 您应该看到一个页面/命名空间XML元素,创build一个新的add孩子,添加System.Linq。 这里是一个例子:

 <configuration> <system.web.webPages.razor> <pages> <namespaces> <add namespace="System.Linq" /> </namespaces> </pages> </system.web.webPages.razor> </configuration> 

我有这个问题,当调用Generic.List像:

 mylist.Select( selectFunc ) 

其中selectFunc被定义为Expression<Func<T, List<string>>> 。 简单地改变“mylist”是一个IQuerable而不是List那么它允许我使用。select。