2011-09-07 18 views
26

का उपयोग कर मैं जानना चाहता हूँ कि कैसे मैं वस्तुओं की एक सरणी क्वेरी कर सकता है चाहते हैं। उदाहरण के लिए मेरे पास कारलिस्ट जैसे सरणी वस्तु है। तो कारलिस्ट [0] मुझे ऑब्जेक्ट कार वापस कर देगी। कार में गुण मॉडल और मेक है। अब, मैं मेक ऑफ़ ए कार प्राप्त करने के लिए सरणी कार्लिस्ट से पूछताछ करने के लिए linq का उपयोग करना चाहता हूं जिसका मॉडल "बीएमडब्ल्यू" कहता है। मैंने कोशिश की निम्नलिखितक्वेरी एक वस्तु सरणी LINQ

var carMake = from item in CarList where item .Model == "bmw" select s.Make; 

मैं त्रुटि मिलती है

स्रोत प्रकार carlist के लिए क्वेरी पैटर्न के एक कार्यान्वयन नहीं मिल सका []

मैं सरणी से कुछ करने के लिए carlist बदल नहीं सकते सूची < की तरह> चूंकि कारलिस्ट को एक webservice से सरणी के रूप में मेरे लिए सुरक्षित किया गया है।

कृपया मुझे पता है कि यह कैसे हल किया जा सकता हैं। यदि आप सी # कोड का उपयोग करके समझा सकते हैं तो बहुत अच्छा होगा।

अग्रिम धन्यवाद।

+1

नहीं आप item.Make का चयन करना चाहिए? –

+1

सब, कोड में टाइपो द्वारा उत्पन्न प्रश्न के दो बार दोबारा वोट करने का क्या कारण है? आइटम में बदलना और अंतरिक्ष को पहले से हटा देना। मॉडेल एकमात्र समाधान है जिसकी उसे आवश्यकता है। –

उत्तर

52

जोड़ें:

using System.Linq; 

अपनी फ़ाइल के शीर्ष करने के लिए।

और फिर:

Car[] carList = ... 
var carMake = 
    from item in carList 
    where item.Model == "bmw" 
    select item.Make; 

या आप धाराप्रवाह वाक्य रचना पसंद करते हैं:

  • select खंड में item.Make के उपयोग के बजाय:

    var carMake = carList 
        .Where(item => item.Model == "bmw") 
        .Select(item => item.Make); 
    

    हालात पर ध्यान देना यदि s.Make आपके कोड में है।

    ContexteDAO.ContexteDonnees एक नया संदर्भ का दृष्टांत:

  • आप सबसे अच्छा तरीका यह करने के लिए अपने where खंड
+1

क्या उसके पास कारलिस्ट [] सरणी नहीं है जिसे कैरलिस्ट कहा जाता है? –

+0

@ डेविड पाइरा, ओह हाँ। तुम सही हो। मैंने ध्यान से नहीं पढ़ा। इसे तलाशने के लिए धन्यवाद। तुरंत मेरा जवाब अपडेट कर रहा है। –

0

में item और .Model के बीच एक खाली स्थान के लिए है।

public static Destination[] Rechercher(string aCodeDestination, string aDénomination, string aVille, string aPays, Single aLatitude, Single aLongitude, string aContinent, 
              string aZoneGeo, string aRelief,string aObservation) 
    { 
     IEnumerable<Destination> DestinationRecherche; 

     DestinationRecherche = ContexteDAO.ContexteDonnees.Destinations; 

     if(!string.IsNullOrEmpty(aCodeDestination)) 
     { 
      DestinationRecherche = DestinationRecherche.Where(a=>a.CodeDestination.Contains(aCodeDestination)); 
     } 
     if (!string.IsNullOrEmpty(aDénomination)) 
     { 
      DestinationRecherche = DestinationRecherche.Where(a => a.Dénomination.Contains(aDénomination)); 
     } 
     if (!string.IsNullOrEmpty(aVille)) 
     { 
      DestinationRecherche = DestinationRecherche.Where(a => a.Ville.Contains(aVille)); 
     } 
     if (!string.IsNullOrEmpty(aPays)) 
     { 
      DestinationRecherche = DestinationRecherche.Where(a => a.Pays.Contains(aPays)); 
     } 
     if (aLatitude != 0) 
     { 
      DestinationRecherche = DestinationRecherche.Where(a => a.Latitude.Equals(aLatitude)); 
     } 
     if (aLongitude != 0) 
     { 
      DestinationRecherche = DestinationRecherche.Where(a => a.Longitude.Equals(aLongitude)); 
     } 
     if (!string.IsNullOrEmpty(aContinent)) 
     { 
      DestinationRecherche = DestinationRecherche.Where(a => a.Continent.Contains(aContinent)); 
     } 
     if(!string.IsNullOrEmpty(aZoneGeo)) 
     {    DestinationRecherche = DestinationRecherche.Where(a => a.ZoneGeographique.Contains(aZoneGeo)); 
     }   
     if(!string.IsNullOrEmpty(aRelief)) 
     { 
      DestinationRecherche = DestinationRecherche.Where(a =>a.Relief.Contains(aRelief)); 
     } 
     if (!string.IsNullOrEmpty(aObservation)) 
     { 
      DestinationRecherche = DestinationRecherche.Where(a => a.ObservationsDestination.Contains(aObservation)); 
     } 
     return DestinationRecherche.ToArray(); 
    } 
संबंधित मुद्दे