在 .net 2.0 项目上工作,没有 linq,也不能添加任何外部库。
构建一个小示例,说明我在实际项目中需要做什么。
如何在不使用 linq 的情况下按“Employee.Category”分组。
我需要为每个小组做一些事情。
在 .net 2.0 中如何分组?
class Program
{
static void Main(string[] args)
{
List<Employee>employees=new List<Employee>();
Employee employee = new Employee();
employee.Id = 1;
employee.Category = "Management";
Employee employee2 = new Employee();
employee.Id = 2;
employee.Category = "Management";
Employee employee3 = new Employee();
employee.Id = 3;
employee.Category = "Director";
Employee employee4 = new Employee();
employee.Id = 4;
employee.Category = "Worker";
Employee employee5= new Employee();
employee.Id = 5;
employee.Category = "Director";
Employee employee6 = new Employee();
employee.Id = 6;
employee.Category = "Worker";
employees.AddRange(new Employee[] { employee, employee2, employee3, employee4, employee5, employee6 });
//1)Group them by category in .net 2.O NO LINQ
//2)Foreach item in the group do something.
Console.WriteLine("??");
}
}
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public string Category { get; set; }
}
谢谢你的建议
最佳答案
怎么样:
Dictionary<string, List<Employee>> groups =
new Dictionary<string, List<Employee>>();
foreach(Employee emp in employees) {
List<Employee> group;
if(!groups.TryGetValue(emp.Category, out group)) {
group = new List<Employee>();
groups.Add(emp.Category, group);
}
group.Add(emp);
}
foreach(KeyValuePair<string,List<Employee>> pair in groups) {
Console.WriteLine(pair.Key);
foreach(Employee emp in pair.Value) {
Console.WriteLine(emp.Id);
}
}
关于c# - 使用 .net 2.0 进行分组你是怎么做到的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6745034/