c# - 使用 .net 2.0 进行分组你是怎么做到的?

标签 c#

在 .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/

相关文章:

C# WPF - 悬停时的自定义菜单项背景

c# - 使用 syndicationitem 获取自定义 rss 提要项目元素?

c# - 如何展平对象的 2 层列表并汇总其他属性常见的属性

c# - 子窗口显示时,父窗口最小化

c# - 如果启动太多线程会怎样?

c# - 枚举 Active Directory 组成员(嵌套),包括域用户(主要组)

C# 跨网页保存 cookie 和 session

c# - Excel 文档的 OpenXml SDK 2.0 中的卡住 Pane

c# - .NET 的 MySql 驱动程序不支持多边形结构,是吗?

c# - unity c#运行shell脚本