Development Tip

System.Collections.Generic.List에 'Select'에 대한 정의가 없습니다.

yourdevel 2020. 11. 29. 12:21
반응형

System.Collections.Generic.List에 'Select'에 대한 정의가 없습니다.


이 오류는 내 "Views"폴더의 많은 파일에서 발생합니다.

'System.Collection.GenericList'에 'System.Collections.GenericList'유형의 첫 번째 인수를 허용하는 'Select'에 대한 정의가 없습니다 (using 지시문 또는 어셈블리 참조가 누락 되었습니까?).

파일 상단 근처에 "using 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.LinqSelect는 확장 메서드이기 때문에 뷰에 네임 스페이스를 포함 해야합니다 . 이를 수행하는 방법에 대한 몇 가지 옵션이 있습니다.

@using System.Linqcshtml 파일 맨 위에 추가 하십시오.

많은 뷰에서이 네임 스페이스를 자주 사용하는 경우, 뷰 폴더 (루트에있는 것이 아님) 내에서 web.config를 수정하여 모든 뷰에 대해이 작업을 수행 할 수 있습니다 . 페이지 / 네임 스페이스 XML 요소가 표시되고 addSystem.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대신 a로 변경 List하여 .Select.

참고URL : https://stackoverflow.com/questions/24496907/system-collections-generic-list-does-not-contain-a-definition-for-select

반응형