如何使用以下场景中的lambda获取对象的新列表:
示例类: AllCARS是一个集合: 公共类AllCars { int id {get;组;} 列车{get;组;} }
public class cars
{
string color;
string model;
}
我尝试了以下没有产生所有行的内容:
var carRepo = new AllCars{};
var carsWithIds = carRepo.select(a => new {a.id, a.cars.color, a.cars.model})
以下是我的表格示例:
AllCars = id:123
cars[]
color model
red honda
blue toyota
我如何编写lambda函数来生成这样的列表 123红色本田 123蓝色丰田
答案 0 :(得分:0)
如果我理解正确的问题,则无法对具有集合的对象执行linq请求。但是,您可以查询此对象内的集合以生成所需的输出。希望以下代码片段能够提供帮助:
var carsWithIds = carRepo.cars.Select(a => new {id = carRepo.id, a.color, a.model });
此代码允许您获取匿名类的新对象,其中包含字段:id,color和model。
您的代码示例中存在一些不准确之处。不要忘记将AllCars和汽车类的属性公之于众;否则他们就无法访问。
答案 1 :(得分:0)
让AllCarsList
成为AllCars
的集合,然后您可以使用扩展方法.SelectMany
来获取resultCollection。请仔细阅读以下代码和示例,如果有帮助以及更多说明,请告诉我。
var resltCollection = AllCarsList.SelectMany(p => p.cars,(parent, child) => new
{
ID = parent.id,
Color = child.color,
Model = child.model
}).ToList();
这是一个有效的Example