C# System.Collections.Generic.List不包含';选择';
“视图”文件夹中的许多文件中都出现此错误: “System.Collection.GenericList”不包含 接受类型为的第一个参数的“Select”的定义 找不到“System.Collections.GenericList”(您是 缺少使用指令或程序集引用?) 我尝试过在文件顶部添加一些“使用系统…”和其他基本库,但添加这些库似乎没有任何帮助 这就是我出错的地方,在以C# System.Collections.Generic.List不包含';选择';,c#,linq,C#,Linq,“视图”文件夹中的许多文件中都出现此错误: “System.Collection.GenericList”不包含 接受类型为的第一个参数的“Select”的定义 找不到“System.Collections.GenericList”(您是 缺少使用指令或程序集引用?) 我尝试过在文件顶部添加一些“使用系统…”和其他基本库,但添加这些库似乎没有任何帮助 这就是我出错的地方,在以.BindTo(Model.Users.Select(o=>o.UserName))开头的行中。: 任何帮助都将不胜感激。
.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>
添加角色
-
- 选择用户:
-
@使用(Html.BeginForm(“srch_GetUserRoles”,“Admin”,
新建{view=“Users\u Roles”},FormMethod.Post,
新的{name=“srch_GetUserRoles”})
{
@(Html.Telerik().AutoComplete())
.Name(“acx\U选择用户”)
.BindTo(Model.Users.Select(o=>o.UserName))
.HtmlAttributes(新{type“submit”})
.HtmlAttributes(新的{@class=“SearchBox”})
.自动填充(真)
.Filterable((筛选=>
{
FilterMode(自动完成FilterMode.Contains);
}))
)
}
...
...
只需添加此名称空间
using System.Linq;
您需要在视图中包含
System.Linq
名称空间,因为Select是一种扩展方法。关于如何执行此操作,您有几个选项:
使用System.Linq将@添加到cshtml文件的顶部
如果发现在许多视图中经常使用此名称空间,则可以通过修改视图文件夹(而不是根文件夹)中的web.config来为所有视图执行此操作。您应该看到一个pages/namespace XML元素,创建一个新的add
子元素来添加System.Linq。以下是一个例子:
我在调用Generic.List时遇到了这个问题,比如:
mylist.Select( selectFunc )
其中selectFunc定义为表达式
。简单地将“mylist”更改为iQualable
而不是列表
,然后它允许我使用。选择这个问题有点老了,但是,有一个棘手的场景也会导致此错误:
在控制器中:
ViewBag.id = //id from querystring
List<string> = GrabDataFromDBByID(ViewBag.id).Select(a=>a.ToString());
因此,为了防止出现这种情况,可以显式强制转换ViewBag或创建另一个存储它的变量。使用System.Linq
可以访问Select
您是否有使用System.Linq
;听起来您在使用System.Linq时缺少了一个。什么类型的型号。用户
?当我有一个输入错误并试图在一个不可枚举的属性上使用.Where时,我得到了这个消息。由于它是Razor,语法更可能是@using System.Linq
,或者你可以将它扔到视图文件夹中的web.config中。是的,我从其他人的类似问题中了解到了这个解决方案。但问题是,即使我添加了这些更改,错误仍然存在。我甚至尝试通过自己添加DLL来手动添加引用,这似乎也没有多大帮助。开始认为可能我的一些程序集有不匹配的版本?如果是这样的话,有没有人对如何解决这个问题有什么想法?我已经完成了上述所有工作,出于某种原因,它告诉我:“名称空间‘System’中不存在类型或名称空间名称‘Linq’(是否缺少程序集引用?)。但是,每当我尝试在“References”子文件夹中添加一个新的引用时,我似乎都找不到这个引用。我已经通过手动添加“System.Linq”修改了web配置,就像您上面描述的那样。所以我不确定它为什么要这样做,因为它似乎不应该这样做。似乎需要添加对System.Core的引用。
GrabDataFromDBByID(string)
GrabDataFromDBByID(int)
GrabDataFromDBByID(whateverType)