none
lamda表达式如何新增一列,记录类中某个字段重复出现的次数? RRS feed

  • 问题

  • //有一个公共类
        public class create_New
        {
            public string 工作代码 { get; set; }
            public string 内容 { get; set; }
            public string 负责人 { get; set; }
            public string 联系方式 { get; set; }
            public string 备注 { get; set; }
        }

    向里面添加数据
    List<create_New> list_Create_New = new List<create_New>();//实例化

                for (int i = 0; i < 某个数组.Length; i += 5)
                {
                    list_Create_New.Add(new create_New() { 工作代码 = str_Nr[i], 内容 = str_Nr[i + 1], 负责人 = str_Nr[i + 2], 联系方式 = str_Nr[i + 3], 备注 = str_Nr[i + 4] });
                }
    //按负责人排序
                list_Create_New = list_Create_New.OrderBy(e => e.负责人).Select(g => g).ToList();

    在此处我想在list_Create_New的每条记录中再加一列,记录负责人重复出现的次数,比如负责人是“张三”的记录出现了3次,那么在list_Create_New备注的后面加上一列(比如叫:该负责人重复次数),他的值是3,请问如何实现?

    2011年10月20日 16:17

答案

  • Hello:)

    按照你的说法,如果在不改动原有的create_New情况下——可以尝试使用GroupBy进行分组后处理,比如:

    list_Create_New = list_Create_New.OrderBy(e => e.负责人).Select(g => g).ToList();

    var result = from e in list_Create_New

                      group e by e.负责人 into tempcontents

                     select new

                       {

                          负责人 = tempcontents.Key,

                          负责人重复次数 = tempcontents.Count()

                       };

    然后foreach或者for遍历result


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年10月21日 6:10