【发布时间】:2015-05-02 19:28:33
【问题描述】:
我有一个字典列表,我希望它按日期键降序排序。但是以下查询给出了不适当的结果。请帮忙。
日期格式为 DD/MM/YYYY
List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
Dictionary<string, string> dict1 = new Dictionary<string, string>();
dict1["Date"] = "01/03/2015";
dict1["Name"] = "bbb";
list.Add(dict1);
Dictionary<string, string> dict2 = new Dictionary<string, string>();
dict2["Date"] = "11/08/2014";
dict2["Name"] = "ccc";
list.Add(dict2);
Dictionary<string, string> dict3 = new Dictionary<string, string>();
dict3["Date"] = "21/03/2014";
dict3["Name"] = "aaa";
list.Add(dict3);
Dictionary<string, string> dict4 = new Dictionary<string, string>();
dict4["Date"] = "01/01/2015";
dict4["Name"] = "ddd";
list.Add(dict4);
var ordered = list.OrderBy(x => x["Date"]);
【问题讨论】:
-
每本词典只包含一项?
-
定义“不适当的结果”。此外,您的日期是一个字符串,它会像字符串一样排序
-
当你可以使用一个元组来获得相同的结果时,为什么还要使用字典?
-
您的
Date参数的类型是 String 而不是DateTime。你怎么能期望它正确排序? -
您不需要更改 SP。您仍然可以将其存储在
字典中,然后正确排序。
标签: c# linq sorting dictionary