C#泛型使用Linq、Distinct()去重

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DaoKongStudio
{
    class Program
    {
        static void Main(string[] args)
        {
            f1();
            f2();
        }

        //两个数组取不重复内容,使用Linq
        private static void f1() {
            List list_a = new List { "1", "2", "3", "4", "5" };
            List list_b = new List { "1", "2", "3" };
            var list_c = list_a.FindAll(x => !list_b.Contains(x));//Linq
            foreach (var item in list_c)
            {
                Console.WriteLine(item);
            }
        }

        //一个数组去重,使用Distinct()
        private static void f2() {
            List list_a = new List { "1", "2", "3", "4", "5", "3", "4", };
            List list_b = list_a.Distinct().ToList();//转泛型
            string[] arr = list_a.Distinct().ToArray();//转数组
            foreach (var item in list_b)
            {
                Console.WriteLine(item);
            }
        }
        
        //DataTable去重
        private static void f3() {
            DataTable datatable = new DataTable();
            datatable.Columns.Add("ID", typeof(string));
            datatable.Columns.Add("UserName", typeof(string));
            datatable.Columns.Add("Psd", typeof(string));
            DataRow dr1 = datatable.NewRow();
            dr1[0] = "1";
            dr1[1] = "张三";
            dr1[2] = "123456";
            datatable.Rows.Add(dr1);

            DataRow dr2 = datatable.NewRow();
            dr2[0] = "2";
            dr2[1] = "张三";
            dr2[2] = "123456";
            datatable.Rows.Add(dr2);
            //true-代表是否需要去重,后面跟需要根据哪些字段进行去重,并且,这里涉及的字段,才会在新表中出现哦!!!
            DataTable newdatatable = datatable.DefaultView.ToTable(true,"UserName");
            foreach (DataRow item in newdatatable.Rows)
            {
                Console.WriteLine(item["UserName"]);
            }
        }

    }
}

 

你可能感兴趣的:(C#笔记)