Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# System.Collections.Generic.List不包含';选择';_C#_Linq - Fatal编程技术网

C# System.Collections.Generic.List不包含';选择';

C# System.Collections.Generic.List不包含';选择';,c#,linq,C#,Linq,“视图”文件夹中的许多文件中都出现此错误: “System.Collection.GenericList”不包含 接受类型为的第一个参数的“Select”的定义 找不到“System.Collections.GenericList”(您是 缺少使用指令或程序集引用?) 我尝试过在文件顶部添加一些“使用系统…”和其他基本库,但添加这些库似乎没有任何帮助 这就是我出错的地方,在以.BindTo(Model.Users.Select(o=>o.UserName))开头的行中。: 任何帮助都将不胜感激。

“视图”文件夹中的许多文件中都出现此错误:

“System.Collection.GenericList”不包含 接受类型为的第一个参数的“Select”的定义 找不到“System.Collections.GenericList”(您是 缺少使用指令或程序集引用?)

我尝试过在文件顶部添加一些“使用系统…”和其他基本库,但添加这些库似乎没有任何帮助

这就是我出错的地方,在以
.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)