【发布时间】:2015-11-23 22:33:50
【问题描述】:
我有一个包含学生数据的字典列表 有点像
List<Dictionary<string, object>> students = new List<Dictionary<string, object>>();
Dictionary<string, object> std1 = new Dictionary<string, object>();
std1["name"] = "sai";
std1["age"] = 22;
std1["gender"] = "male";
students.Add(std1);
Dictionary<string, object> std2 = new Dictionary<string, object>();
std2["name"] = "Julia";
std2["gender"] = "female";
students.Add(std2);
Dictionary<string, object> std3 = new Dictionary<string, object>();
std3 ["name"] = "sunny";
std3 ["age"] = 23;
students.Add(std3);
我想根据name、age 或gender 对学生列表进行排序,我正在尝试这样的事情:
var ordered = students.OrderBy(x => x["name"]);
如果我尝试使用age 或gender,则会返回找不到密钥的错误,因为std2 没有age 和std3 没有gender。
我需要所有记录,即使它不包含排序键的值,任何解决此问题的方法,提前致谢。
【问题讨论】:
-
使用字典而不是类是否有特定原因?
标签: c# linq list sorting dictionary