【发布时间】:2022-01-18 19:04:30
【问题描述】:
我有一本字典
Dictionary<string, List<Employee>> employees
包含员工列表。我想让用户根据他们所处的状态按字母顺序显示员工列表。
Console.WriteLine($"If you would like to sort this list please enter one of the following choices..\n" +
$"'STATE', 'INCOME', 'ID', 'NAME', 'TAX' other wise enter any key.");
var sort = Console.ReadLine().ToUpper();
var employees = EmployeeRecord.employees;
List<Employee> sortedEmps = new List<Employee>();
if (sort.Contains("STATE"))
foreach (var list in employees.Values) {
var columnQuery = list.OrderBy(x => x.stateCode).ToList();
sortedEmps.AddRange(columnQuery);
}
}
//Print out the newly ordered list
foreach (Employee r in sortedEmps) {
Console.WriteLine($"ID: {r.iD} Name: {r.name} State: {r.stateCode} Income:{r.income} Tax Due: {r.taxDue}");
}
但是,它仍然会打印出列表而不进行排序。我怎样才能让它按州代码的字母顺序排列?
【问题讨论】:
-
您似乎有一个列表列表。您正在对内部列表 (
list) 进行排序,而不是外部列表 (employees)。 -
改用 SelectMany 和 OrderBy。
-
@HansKilian 啊我现在看到了我的问题。谢谢你的解释。