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.. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |