簡體   English   中英

使用lambda從對象及其列表創建通用列表

[英]Create generic list from an object and its list using lambda

我正在嘗試從一個對象創建一個“平面”通用列表,其中包含一個項目列表。 我解釋如下:

public class Student
{
   public string Name;
   public string Age;
}

public class Classroom
{
   public string Name;
   public List<Student> Students;
}

我現在有一個名為List<Classroom> Classrooms的Classroom對象List<Classroom> Classrooms每個對象都填充了一個學生列表,我需要的是一個通用列表,它將為每個教室和所有教室中的每個學生提供以下信息:

{Classroom.Name, Student.Name, Student.Age}

提前致謝。

你可以使用SelectMany Linq擴展:

Classrooms.SelectMany(classroom => classroom.Students.Select(student => new 
{ 
    ClassroomName = classroom.Name, 
    StudentName = student.Name, 
    StudentAge = student.Age 
}))

你可以得到你想要的東西:

var results = (
    from room in Classrooms
    from student in room.Students
    select new { Room=room.Name, student.Name, student.Age }
).ToList();

這將為您提供匿名類型實例的列表。 最好聲明一個類並使用它 - new MyClass(room.Name, etc)而不是new { Room=room.Name, etc }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM