分别使用List中Distinct(),GroupBy()实现链表的去重。

1.先上效果:

一维链表中分别有元素“aa”,"bb",'aa','aa',"cc",使用Distinct()方法后输出 aa,bb,cc

二维链表中类型为ClassA类型,其中对象的属性A分别为1,1,2,3,1,使用GroupBy()方法实则是分类,输出Key值分别为1,2,3。

2.上代码,类ClassA

         class ClassA
{
private int a;
public int A
{
get { return a; }
set { a = value; } } private string b;
public string B
{
get { return b; }
set { b = value; } }
}

主函数,分别打印一维链表,二维链表去重后输出的值。

 static void Main(string[] args)
{
//1.一维链表去重复(Distinct方法)
List<string> lst1 = new List<string>() { "aa", "bb", "cc", "aa", "bb" };
List<string> lst1Distinct = lst1.Distinct().ToList(); StringBuilder sb1 = new StringBuilder();
sb1.Append("一维链表去重:");
foreach (var item in lst1Distinct)
{
sb1.Append(item);
sb1.Append("-");
}
Console.WriteLine(sb1.ToString());//结果为 aa-bb-cc- //2.二维链表去重(GroupBy方法)
List<ClassA> lst2 = new List<ClassA>();
lst2.Add(new ClassA() { A = , B = "aa" });
lst2.Add(new ClassA() { A = , B = "bb" });
lst2.Add(new ClassA() { A = , B = "aa" });
lst2.Add(new ClassA() { A = , B = "aa" });
lst2.Add(new ClassA() { A = , B = "cc" });
var lst2Distinct = lst2.GroupBy(r => r.A);//根据属性A分组
StringBuilder sb2 = new StringBuilder();
sb2.Append("二维链表去重:");
foreach (var item in lst2Distinct)
{
sb2.Append(item.Key.ToString());
sb2.Append("-");
}
Console.WriteLine(sb2.ToString());//结果为1-2-3-
Console.Read();
}

C# 链表去重 List 一维 二维 分别使用 Distinct() GroupBy() 方法的更多相关文章

  1. 稳定排序nlogn之归并排序_一维,二维

    稳定排序nlogn之归并排序_一维,二维 稳定排序:排序时间稳定的排序 稳定排序包括:归并排序(nlogn),基数排序[设待排序列为n个记录,d个关键码,关键码的取值范围为radix,则进行链式基数排 ...

  2. 一维二维Sparse Table

    写在前面: 记录了个人的学习过程,同时方便复习 Sparse Table 有些情况,需要反复读取某个指定范围内的值而不需要修改 逐个判断区间内的每个值显然太浪费时间 我们希望用空间换取时间 ST表就是 ...

  3. 基于ZXing.Net生成一维二维码

    新阁教育-喜科堂付工原创 最近很多小伙伴对一维码.二维码比较感兴趣,今天主要给大家分享一个C#生成条形码和二维码的案例. C#作为一个高级语言,特点就是快! 我们使用的是开源库ZXing,ZXing是 ...

  4. 织梦dedecms页面中增加二维码功能的实现方法

    本文介绍了在dedecms中增加二维码功能的实现方法,有时需要在dedecms页面增加二维码,方便手机用户访问,有需要的朋友参考下. 本节内容: dedecms中增加二维码功能   1.打开/incl ...

  5. PHP二维码添加logo的方法

    PHP二维码添加logo的方法<pre> public function createqcode($text,$id){ include '/phpqrcode/phpqrcode.php ...

  6. PHP生成带logo图像二维码的两种方法

    本文主要和大家分享PHP生成带logo图像二维码的两种方法,主要以文字和代码的形式和大家分享,希望能帮助到大家. 一.利用Google API生成二维码Google提供了较为完善的二维码生成接口,调用 ...

  7. c++ 依据输入动态声明数组(一维,二维)

    较早的编译器是不同意这样做的,所以一些书籍比方以Tc解说的书本都说数组的下标不能是变量.在vc6.0下亦是如此. 只是在一些较新的编译器如dev c++已经支持了,例如以下代码不会报错 #includ ...

  8. java 数组基础学习(一维二维数组)

    1.一维数组 1>静态初始化:数据类型[ ] 变量名 = {元素} 例:int[ ] arr = {1,2} 动态初始化:数据类型[ ] 变量名 = new数据类型[数据长度] 例:int[ ] ...

  9. 【VBA】利用Range声明Array(一维/二维)

    [说明] B2开始到B?(中间不能有空格),定义一维数组Arr_approver() Dim R_sh As Worksheet Set R_sh = ThisWorkbook.Sheets(&quo ...

随机推荐

  1. NOIP-机器翻译

    题目描述 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先在内存中查 ...

  2. eclipse设置properties文件的字体颜色

    点击Window->preferences->搜素properties ============================ 其它设置字体颜色设置        =========== ...

  3. 七、Servlet概述

    Servlet概述 生命周期方法:void init(ServletConfig):出生之后(1次):void service(ServletRequest request, ServletRes ...

  4. javascript的数组之includes()

    includes()方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false. var array1 = [1, 2, 3]; console.log(array ...

  5. Nginx负载均衡后端健康检查(支持HTTP和TCP)

    之前有一篇文章记录nginx负载均衡后端检查,链接为 https://www.cnblogs.com/minseo/p/9511456.html 但是只包含http健康检查不包含tcp下面安装ngin ...

  6. js如何判断数字是否有小数

    //如果是5.00之类的,转换后,应该不要小数点后的位数 let num = 5.34; //let num = 5.00; let arr = num .toString().split(" ...

  7. 《SQL Server性能调优实战》知识点汇总

    2.4数据库结构的设计 好的性能出自好的设计 尽可能添加数据完整约束(非空约束.默认值约束.CHECK约束.唯一约束.外键约束)等,这些约束的添加将有助于数据库关系引擎分析执行计划. 尽可能小的字段类 ...

  8. python特定时间发送消息到微信公众号

    #!/usr/bin/env python# -*- coding: utf-8 -*-# __author__ = 'James'# 导入模块from wxpy import *import tim ...

  9. 使用vue实现tab栏的点击切换样式

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  10. Pycharm汉化

    简单的汉化方法:    需要把以下链接的文件放到Pycharm安装目录的lib目录下记得重启pycharm即可https://pan.baidu.com/s/1GG4zXZ_0xSB-AlDdu0Tu ...