在C#中,可以通過使用LINQ對字典按值進行排序。以下是一個示例代碼,展示如何對一個字典按值進行升序或降序排序:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
Dictionary<string, int> dict = new Dictionary<string, int>
{
{ "Alice", 30 },
{ "Bob", 20 },
{ "Charlie", 40 },
{ "David", 10 }
};
// 對字典按值升序排序
var sortedDictAsc = dict.OrderBy(x => x.Value).ToDictionary(x => x.Key, x => x.Value);
// 對字典按值降序排序
var sortedDictDesc = dict.OrderByDescending(x => x.Value).ToDictionary(x => x.Key, x => x.Value);
// 輸出排序后的字典
Console.WriteLine("按值升序排序:");
foreach (var item in sortedDictAsc)
{
Console.WriteLine($"{item.Key}: {item.Value}");
}
Console.WriteLine("\n按值降序排序:");
foreach (var item in sortedDictDesc)
{
Console.WriteLine($"{item.Key}: {item.Value}");
}
}
}
在示例中,我們先創建了一個包含字符串鍵和整數值的字典。然后使用LINQ的OrderBy
方法和ToDictionary
方法對字典按值進行升序或降序排序。最后,輸出排序后的字典。