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.
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 theselect
clause instead ifs.Make
as in your code. - You have a whitespace between
item
and.Model
in yourwhere
clause