使用linq查询对象数组

Der*_*rin 43 c# arrays

我想知道如何查询对象数组.例如,我有一个像CarList这样的数组对象.所以CarList [0]会把对象Car给我.汽车有属性Model和Make.现在,我想使用linq查询数组CarList以获得模型名为"bmw"的Make of a Car.我尝试了以下内容

var carMake = from item in CarList where item .Model == "bmw" select s.Make;
Run Code Online (Sandbox Code Playgroud)

我收到了错误

找不到源类型CarList []的查询模式的实现

我无法将CarList从数组更改为List <>之类的东西,因为CarList从webservice作为数组返回到我.

请告诉我这是如何解决的.如果您可以使用C#代码解释,那将会很棒.

提前致谢.

Dar*_*rov 77

加:

using System.Linq;
Run Code Online (Sandbox Code Playgroud)

到文件的顶部.

然后:

Car[] carList = ...
var carMake = 
    from item in carList
    where item.Model == "bmw" 
    select item.Make;
Run Code Online (Sandbox Code Playgroud)

或者如果您更喜欢流利的语法:

var carMake = carList
    .Where(item => item.Model == "bmw")
    .Select(item => item.Make);
Run Code Online (Sandbox Code Playgroud)

需要注意的事项:

  • 如果在代码中item.Make,则使用select子句中的用法s.Make.
  • 你的子句之间item和之间都有一个空格.Modelwhere