58

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.

How can this be solved?

2
  • 1
    shouldn't you select item.Make? Commented Sep 7, 2011 at 10:11
  • 1
    All, what's the reason to up-vote twice a question generated by a typo in the code? changing s into item and removing space before .Model is the only solution he needed. Commented Sep 7, 2011 at 10:19

1 Answer 1

98

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
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.