【发布时间】:2021-08-20 13:51:38
【问题描述】:
class Employee
{
public string Name{get;set;}
public int Age{get;set;}
public int ID{get;set;}
}
static void Main(string[] args)
{
List<Employee> EmployeeList = new();
EmployeeList.Add(new Employee() { Name = "Luís", Age = 19, ID = 1 });
EmployeeList.Add(new Employee() { Name = "Sofia", Age = 25, ID = 2 });
EmployeeList.Add(new Employee() { Name = "Gilberto", Age = 57, ID = 3 });
EmployeeList.Add(new Employee() { Name = "Manuel", Age = 25, ID = 4 });
EmployeeList.Add(new Employee() { Name = "Sofia", Age = 25, ID = 2 });
var EmployeeDic = EmployeeList.GroupBy(i => i.Age).ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());
foreach (var emp in EmployeeDic)
{
Console.WriteLine("" + emp.Key + emp.Value);
}
Console.ReadKey();}
我做了很多研究,无法得到价值,关键是员工的年龄。接下来我可以尝试什么?
【问题讨论】:
-
emp.Value是一个List<Employee>,如果你这样做new List<Employee>().ToString(),你会得到你看到的输出。也许你想遍历emp.Value(这是一个Employee)中的每个元素,然后打印出来? -
“我无法获得价值” 根据您的代码,您希望获得什么价值?
EmployeeDic是一本字典。字典键的类型是什么?因此,emp.Key应该包含什么类型?字典值的类型是什么?那么emp.Value应该包含什么类型呢? -
字典的键将是年龄,因为 groupby 并且那是有效的,emp.value 包含一个列表,我找不到循环 emp.value 以获取例如名称的方法员工。
-
@tommy:所以你知道
emp.Value是List<Employee>。你如何遍历一个列表?我提出这个问题是因为自己找到答案具有更大的教育价值。 (1) 查找如何遍历列表 (2)emp.Value是一个列表,因此您可以遍历它 (3) 以您希望的方式处理列表的每个元素 (Employee)。
标签: c# list dictionary