सवाल System.Collections.Generic.List में 'चयन' के लिए परिभाषा नहीं है


यह त्रुटि मेरे "दृश्य" फ़ोल्डर में कई फ़ाइलों में हो रही है:

'System.Collection.GenericList' में कोई नहीं है   प्रकार के पहले तर्क को स्वीकार करने के लिए 'चयन' की परिभाषा   '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>

44
2018-06-30 18:49


मूल


का उपयोग करते हुए System.Linq आपको पहुंच प्रदान करेगा Select - D Stanley
क्या आपके पास है using System.Linq; - Habib
लगता है जैसे आप एक गायब हैं using System.Linq - Marc Gravell♦
किस प्रकार का है Model.Users? मुझे यह मिल रहा था जब मेरे पास एक टाइपो था और उपयोग करने की कोशिश कर रहा था। ऐसी संपत्ति पर जहां गणना नहीं की गई थी। - xr280xr


जवाब:


बस इस नामस्थान को जोड़ें,

using System.Linq;

104
2018-06-30 18:50



चूंकि यह रेजर है, इसलिए सिंटैक्स अधिक होने की संभावना है @using System.Linq, या आप इसे व्यू के फ़ोल्डर के अंदर web.config में चक कर सकते हैं। - vcsjones
हाँ, मैंने अन्य लोगों के समान मुद्दों से उस समाधान के बारे में पढ़ा है। हालांकि मेरे पास समस्या यह है कि जब भी मैं उन परिवर्तनों को जोड़ता हूं, तब भी त्रुटि मौजूद होती है। मैंने खुद को डीएलएल जोड़कर मैन्युअल रूप से संदर्भ जोड़ने की भी कोशिश की है, और यह बहुत मदद नहीं करता है। यह सोचने लगते हैं कि शायद मेरे कुछ असेंबली में बेमेल संस्करण हैं? यदि हां, तो क्या किसी को यह ठीक करने के बारे में कोई विचार है? - Ogreintel


आपको होना चाहिए System.Linq नामस्थान आपके दृश्य में शामिल है क्योंकि चयन एक विस्तार विधि है। आपके पास यह कैसे करें इस पर कुछ विकल्प हैं:

जोड़ना @using System.Linq अपनी सीएसटीएमएल फ़ाइल के शीर्ष पर।

यदि आपको लगता है कि आप अक्सर अपने कई विचारों में इस नामस्थान का उपयोग करेंगे, तो आप इसे कर सकते हैं सब अपने दृश्य फ़ोल्डर के अंदर web.config को संशोधित करके विचार (रूट पर एक नहीं)। आपको एक पेज / नेमस्पेस XML तत्व देखना चाहिए, एक नया बनाएं add बच्चा जो System.Linq जोड़ता है। यहाँ एक उदाहरण है:

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

23
2018-06-30 18:59



मैंने उपरोक्त सभी किया है, और किसी कारण से यह मुझे बता रहा है कि: "नाम या नामस्थान नाम 'लिंक' नामस्थान 'सिस्टम' में मौजूद नहीं है (क्या आप एक असेंबली संदर्भ खो रहे हैं?)"। जब भी मैं "संदर्भ" उप-फ़ोल्डर में एक नया जोड़ने की कोशिश करता हूं, तो मुझे यह संदर्भ नहीं मिल रहा है। - Ogreintel
मैंने मैन्युअल रूप से "System.Linq" को जोड़कर वेब-कॉन्फ़िगरेशन को संशोधित किया है जैसा आपने ऊपर वर्णित किया है। तो मुझे यकीन नहीं है कि यह ऐसा क्यों कर रहा है क्योंकि ऐसा प्रतीत नहीं होता है। - Ogreintel
ऐसा लगता है कि आपको System.Core का संदर्भ जोड़ने की आवश्यकता है। - vcsjones


मुझे यह मुद्दा था, जेनेरिक कॉल करते समय। जैसे:

mylist.Select( selectFunc )

जहां selectFunc को परिभाषित किया गया है Expression<Func<T, List<string>>>। बस "मेरी सूची" को बदलने के लिए बदल दिया IQuerable के बजाय List तो यह मुझे उपयोग करने की अनुमति दी .Select


3
2018-05-04 06:43