c# 写一个排序算法,能处理字典,字典的键对为时间和对象
时间: 2024-03-23 22:37:23 浏览: 98
下面是一个基于 C# 的排序算法,可以处理字典,字典的键对为时间和对象。
```csharp
using System;
using System.Collections.Generic;
public class Program {
public static void Main(string[] args) {
// 初始化字典
Dictionary<DateTime, object> dict = new Dictionary<DateTime, object>();
dict.Add(new DateTime(2022, 12, 1), "对象1");
dict.Add(new DateTime(2021, 7, 15), "对象2");
dict.Add(new DateTime(2022, 3, 25), "对象3");
// 调用排序函数,并输出结果
Dictionary<DateTime, object> sortedDict = SortDictionaryByTime(dict);
foreach(var item in sortedDict) {
Console.WriteLine(item.Key.ToString("yyyy-MM-dd") + ": " + item.Value);
}
}
public static Dictionary<DateTime, object> SortDictionaryByTime(Dictionary<DateTime, object> dict) {
// 将字典转化为键值对列表
List<KeyValuePair<DateTime, object>> list = new List<KeyValuePair<DateTime, object>>(dict);
// 对键值对列表进行排序
list.Sort((x, y) => DateTime.Compare(x.Key, y.Key));
// 将排序后的键值对列表转化为字典
Dictionary<DateTime, object> sortedDict = new Dictionary<DateTime, object>();
foreach(var item in list) {
sortedDict.Add(item.Key, item.Value);
}
return sortedDict;
}
}
```
这个排序算法的实现思路是,先将字典转化为键值对列表,然后对键值对列表按照时间键进行排序,最后再将排序后的键值对列表转化为字典。这个算法可以处理任何键对为时间和对象的字典,只需要修改字典的键值类型即可。
阅读全文