Derin Derin - 3 months ago 10
C# Question

Query an object array using linq

I would like to know how can I query an array of objects. For example I have an array object like CarList. So CarList[0] would return me the object Car. Car has properties Model and Make. Now, I want to use linq to query the array CarList to get the Make of a Car whose Model is say "bmw". I tried the following

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


I get the error


Could not find an implementation of the query pattern for source type CarList[]


I cannot change CarList from array to something like List<> since CarList is retured to me as array from a webservice.

Kindly let me know how this can be solved. Would be great if you can explain using C# code.

Thanks in advance.

Answer

Add:

using System.Linq;

to the top of your file.

And then:

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

or if you prefer the fluent syntax:

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

Things to pay attention to:

  • The usage of item.Make in the select clause instead if s.Make as in your code.
  • You have a whitespace between item and .Model in your where clause