在C#中,使用LINQ對IQueryable進行分組和選擇的最佳實踐是:
1. 使用GroupBy
方法進行分組。
2. 使用Select
方法進行選擇。
3. 使用匿名類型或自定義類來存儲分組結果。
示例代碼:
using System;
using System.Linq;
using System.Collections.Generic;
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
List<Student> students = new List<Student>
{
new Student { Name = "Alice", Age = 20 },
new Student { Name = "Bob", Age = 20 },
new Student { Name = "Charlie", Age = 21 },
new Student { Name = "David", Age = 22 }
};
var groupedStudents = from student in students
group student by student.Age into ageGroup
select new
{
Age = ageGroup.Key,
Count = ageGroup.Count(),
Students = ageGroup.ToList()
};
foreach (var group in groupedStudents)
{
Console.WriteLine($"Age: {group.Age}, Count: {group.Count}");
foreach (var student in group.Students)
{
Console.WriteLine($" - {student.Name}");
}
}
}
}
在這個示例中,我們首先創建了一個Student
類,然后創建了一個包含四個學生的列表。接著,我們使用LINQ的GroupBy
方法按年齡對學生進行分組,并使用Select
方法創建一個匿名類型來存儲每個年齡組的信息,包括年齡、學生數量和該年齡組的學生列表。最后,我們遍歷分組結果并輸出每個年齡組的信息。