Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用lambda从具有集合的类中获取所有记录_C#_Lambda - Fatal编程技术网

C# 如何使用lambda从具有集合的类中获取所有记录

C# 如何使用lambda从具有集合的类中获取所有记录,c#,lambda,C#,Lambda,如何从以下场景中使用lambda获取对象的新列表: 示例类: AllCARS是一个集合: 公车 { int id{get;set;} 列出汽车{get;set;} } 我尝试了以下操作,但没有生成所有行: var carRepo = new AllCars{}; var carsWithIds = carRepo.select(a => new {a.id, a.cars.color, a.cars.model}) 以下是我的表格示例: AllCars = id:123 cars[]

如何从以下场景中使用lambda获取对象的新列表:

示例类: AllCARS是一个集合: 公车 { int id{get;set;} 列出汽车{get;set;} }

我尝试了以下操作,但没有生成所有行:

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 blue toyota

如果我正确理解了问题,则无法对具有集合的对象执行linq请求。但是,您可以查询此对象内的集合以生成所需的输出。希望以下代码片段能有所帮助:

var carsWithIds = carRepo.cars.Select(a => new {id = carRepo.id, a.color, a.model });
此代码允许您获取匿名类的新对象,该对象包含以下字段:id、color和model


您的代码示例中有一点不准确。不要忘记公开所有汽车和汽车类别的属性;否则它们将无法访问。

AllCarsList
成为
AllCars
的集合,然后您可以使用扩展方法
。选择many
以获取结果集合。请仔细阅读下面的代码行和示例,并请让我知道它是否有帮助,以及更多的澄清

 var resltCollection =  AllCarsList.SelectMany(p => p.cars,(parent, child) => new
                                                  {
                                                      ID = parent.id,
                                                      Color = child.color,
                                                      Model = child.model
                                                  }).ToList();

这是一个正在运行的

我尝试了以下没有生成所有行的操作:
输出是什么?我应该指出的一点是,Allcars是一个列表。。。。对于所有汽车的每一项记录,我都在努力输出所有的数据cars@user1526912如果这是你希望问的问题,你至少应该暗示一下。无论如何,如果您想要(交叉连接,对吗?),请尝试
SelectMany
。我应该提到汽车有一个我希望在所有汽车上匹配的id属性。我应该提到汽车有一个我希望在所有汽车上匹配的id属性,我在您提供的类的定义中找不到任何
id
,请提供更新的课程。
 var resltCollection =  AllCarsList.SelectMany(p => p.cars,(parent, child) => new
                                                  {
                                                      ID = parent.id,
                                                      Color = child.color,
                                                      Model = child.model
                                                  }).ToList();