我有以下代码将myCar
对象列表转换为来自第三方Web服务的Car对象数组,以便我可以将汽车传递给第三方Web服务:
var cars = new Car[myCars.Count];
var count = 0;
foreach (var myCar in myCars)
{
cars[count] = new Car
{
Id = myCar.Id,
Manufacturer = myCar.Manufacturer,
Model = myCar.Model
};
count++;
}
return cars;
请注意,我的myCar对象除了第三方Web服务之外还有许多其他功能,我不能做一些简单的事情,例如:
MyClass[] myArray = list.ToArray();
代码按预期工作但我想知道Linq中是否有一些内容,例如Select表达式可以使这更好并减少代码?
答案 0 :(得分:10)
var cars = myCars.Select(myCar => new Car
{
Id = myCar.Id,
Manufacturer = myCar.Manufacturer,
Model = myCar.Model
}).ToArray();
答案 1 :(得分:3)
Select
linq方法允许您将一个对象转换为另一个对象:
var cars = myCars.Select( c => new Car { id = c.Id, Manufacturer = c.Manufacturer, Model = c.Model } ).ToArray()
我认为会这样做。