【发布时间】:2014-11-19 13:38:31
【问题描述】:
我创建了一些返回 Dictionary<string, List<Employee>> 的方法,在此方法中我循环遍历 List<Employee> 并查找名字并将其按字母顺序添加到我的字典中
看下面的例子:
- 员工
- 艾克,乔迪
- Doe,约翰
- Doe,简
- 等。
其中第一部分是姓氏,第二部分是名字
我的方法创建一个这样的字典
- “D”,列表({Doe, John}, {Doe, Jane})
- “E”,列表 ({Eijk, Jordy})
方法:
public async Task<Dictionary<string, List<Employee>>> GetAllOrderdedByNameAsync()
{
var dbList = await _employeeRepository.ListAsync();
var employees = dbList.Select(FromDb).ToList();
var empDict = new Dictionary<string, List<Employee>>();
for (char c = 'A'; c <= 'Z'; c++)
{
var list = employees.Where(employee => employee.LastName.StartsWith(c.ToString(), StringComparison.CurrentCultureIgnoreCase)).ToList();
if (list.Count > 0)
{
empDict.Add(c.ToString(), list);
}
}
return empDict;
}
现在我的问题...有没有更好的方法来做到这一点?我将保留List<Employee> 作为输入并需要Dictionary<string,List<Employee>> 作为输出,所以请不要说我需要返回其他内容。
【问题讨论】:
标签: c# list dictionary