要對復雜對象字典進行排序,可以使用LINQ查詢和Lambda表達式來根據特定的屬性對對象進行排序。以下是一個示例代碼,演示如何對包含復雜對象的字典進行排序:
using System;
using System.Collections.Generic;
using System.Linq;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
Dictionary<int, Person> dict = new Dictionary<int, Person>
{
{1, new Person { Name = "Alice", Age = 25 }},
{2, new Person { Name = "Bob", Age = 30 }},
{3, new Person { Name = "Charlie", Age = 20 }}
};
var sortedDict = dict.OrderBy(x => x.Value.Age).ToDictionary(x => x.Key, x => x.Value);
foreach (var item in sortedDict)
{
Console.WriteLine($"Key: {item.Key}, Name: {item.Value.Name}, Age: {item.Value.Age}");
}
}
}
在上面的示例中,我們定義了一個名為Person的類,該類具有Name和Age屬性。然后我們創建了一個字典dict,其中包含整數鍵和Person對象值。我們使用LINQ的OrderBy方法根據Person對象的Age屬性對字典進行排序,并將排序后的結果轉換為新的字典sortedDict。最后,我們遍歷sortedDict并打印出每個元素的鍵和值。
你可以根據自己的需求修改排序的邏輯,例如按照Name屬性或者自定義的排序規則進行排序。