web-dev-qa-db-fra.com

Interroger un tableau d'objets à l'aide de linq

Je voudrais savoir comment interroger un tableau d'objets. Par exemple, j'ai un objet tableau comme CarList. Donc CarList [0] me rendrait l'objet Car. La voiture a les propriétés Model et Make. Maintenant, je veux utiliser linq pour interroger le tableau CarList pour obtenir la marque d'une voiture dont le modèle est "bmw". J'ai essayé ce qui suit

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

Je reçois l'erreur

Impossible de trouver une implémentation du modèle de requête pour le type de source CarList []

Je ne peux pas changer CarList de tableau en quelque chose comme List <> car CarList est récupéré pour moi en tant que tableau à partir d'un service Web.

Veuillez me faire savoir comment cela peut être résolu. Ce serait génial si vous pouvez expliquer en utilisant le code C #.

Merci d'avance.

41
Derin

Ajouter:

using System.Linq;

en haut de votre fichier.

Et alors:

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

ou si vous préférez la syntaxe courante:

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

Choses à faire attention:

  • L'utilisation de item.Make dans la clause select à la place si s.Make comme dans votre code.
  • Vous avez un espace entre item et .Model dans votre clause where
71
Darin Dimitrov