C#linq计算总条数并去重复的写法
一,在实际需求中我们会存在选出了一个集合,而这时我们需要通过集合的某几个字段来计算重复,和统计重复的数量,这时我们可以用到linq来筛选和去重复。
二,如下代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Bao { class Program { static void Main(string[] args) { List<Demo> result = new List<Demo>(); result.Add(new Demo() { Name = "1", Pro = "1", Code = "1" }); result.Add(new Demo() { Name = "1", Pro = "1", Code = "1" }); result.Add(new Demo() { Name = "2", Pro = "2", Code = "3" }); result.Add(new Demo() { Name = "3", Pro = "3", Code = "3" }); result.Add(new Demo() { Name = "4", Pro = "4", Code = "4" }); var test = from a in result select new { SchoolName = a.Name, Province = a.Pro, SchoolCode = a.Code, counts = (from t in result where t.Name == a.Name && t.Pro == a.Pro && t.Code == a.Code group t by new { Name = t.Name, Pro = t.Pro, Code = t.Code } into g select new { counts = g.Count() } ).FirstOrDefault().counts }; var ttt = test.ToList(); var aaa = ttt.Distinct().ToList(); } } public class Demo { public string Code { get; set; } public string Name { get; set; } public string Pro { get; set; } public int counts { get; set; } } }