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; }
    }
}
原文地址:https://www.cnblogs.com/May-day/p/8892482.html