LINQ SelectMany的應用場景

katesharing發表於2024-10-31

示例 1:多層集合展平

假設你有一個列表,每個元素都是一個字串陣列,你想將所有的字串展平成一個單一的字串列表。

示例 2:巢狀迴圈

假設你有一個使用者列表,每個使用者有一個訂單列表,你想獲取所有使用者的訂單列表。

示例 3:多對多關係

假設你有一個學生列表,每個學生選修了多門課程,你想獲取所有學生選修的所有課程。

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        // 學生類
        class Student
        {
            public string Name { get; set; }
            public List<string> Courses { get; set; }
        }

        // 學生列表
        List<Student> students = new List<Student>
        {
            new Student { Name = "Alice", Courses = new List<string> { "Math", "Physics" } },
            new Student { Name = "Bob", Courses = new List<string> { "Chemistry", "Biology" } },
            new Student { Name = "Charlie", Courses = new List<string> { "History", "Geography" } }
        };

        // 使用 SelectMany 獲取所有學生選修的所有課程
        List<string> allCourses = students.SelectMany(student => student.Courses).ToList();

        // 輸出所有課程
        foreach (string course in allCourses)
        {
            Console.WriteLine(course);
        }
    }
}

相關文章