加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何对逗号分隔的字符串中项目的出现次数进行分组和计数

发布时间:2020-12-16 00:25:43 所属栏目:百科 来源:网络整理
导读:我有一个具有以下属性的Student类 public class Student{ public string Name{ get; set; } public string Subject { get; set; }} 假设我们有一个像下面这样的学生名单 var students = new ListStudent();students.Add(new Student { Name = "John",Subject
我有一个具有以下属性的Student类

public class Student
{
    public string Name{ get; set; }
    public string Subject { get; set; }
}

假设我们有一个像下面这样的学生名单

var students = new List<Student>();
students.Add(new Student { Name = "John",Subject = "Math"});
students.Add(new Student { Name = "Bob",Subject = "English,Math"});
students.Add(new Student { Name = "Jane",Subject = "Math,History,Art"});
students.Add(new Student { Name = "Jim",Subject = "English"});

我想按主题对学生进行分组并计算主题.

所以输出就是

Math,3
English,1
History 1
Art 1

如何使用linq实现结果?

解决方法

students.SelectMany(arg => arg.Subject.Split(new []{','})) // split the Subject-property on commas
        .Select(arg => arg.Trim()) // get rid of the whitespaces after commas
        .GroupBy(arg => arg) // you can inject an equality comparer here,to achieve case insenstive grouping
        .Select(arg => new
                       {
                         Subject = arg.Key,Count = arg.Count()
                       }); // TODO output these objects to your console..

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读