C#小技巧(二) 用List.Contains方法筛除重复项
2016-02-07 12:09
579 查看
C#小技巧—— 用List.Contains方法筛除重复项
一、程序功能此程序主要是把List<T>列表类对象中的所有重复项都删除并输出,如果有需要,也可以把重复的项另外输出来供研究。
举个例子,比如List对象有如下的元素:
List<string> strList = new List<string> { "car", "bike", "truck", "car", "plane", "car","truck", };
经过处理,输出的结果是:
Car bike truck plane
主要的代码如下,新建一个tempList变量用于存储新链表,然后利用List<T>.Contains方法判断是否重复:
List<string> tempList = new List<string>();
Console.WriteLine("正在处理...");
foreach (string s in strList)
{
if (!tempList.Contains(s))
tempList.Add(s);
}
此方法的好处是代码比较简洁,缺点是要额外的储存tempList链表变量的空间。另外经过实测,Contains方法比较耗时,在链表数量比较大的时候,比如strList有几万几十万个元素的时候,运行比较慢。
如果要知道哪些项目是重复的,可以如下略做改动,可以输出重复的元素:
foreach (string s in strList)
{
if (!tempList.Contains(s))
tempList.Add(s);
else
Console.WriteLine(s + "是重复项");
}
就是加了个else进行判断。
二、程序测试代码
List<string> strList = new List<string> { "car", "bike", "truck", "car", "plane", "car","truck", };
List<string> tempList = new List<string>();
Console.WriteLine("原链表如下:");
foreach (string s in strList)
{
Console.WriteLine(s);
}
Con
91fc
sole.WriteLine("正在处理...");
foreach (string s in strList)
{
if (!tempList.Contains(s))
tempList.Add(s);
else
Console.WriteLine(s + "是重复项");
}
Console.WriteLine("不重复的链表如下:");
foreach (string s in tempList)
{
Console.WriteLine(s);
}
//// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
相关文章推荐
- C#小技巧(一)循环的Remove方法
- C#对XMl文件的操作
- C# 拆分数组的方法
- C# 线程使用总结
- C#正则分组实例
- c#之多态的一个应用
- c# NG
- C# 基础加强(五) 抽象类、抽象方法
- C# 基础加强(四) 静态类、静态方法
- C# 基础加强(三) 虚方法:virtual
- 泛型与集合类型
- C#之任务,线程和同步
- [小北De编程手记] : Selenium For C# 教程目录
- 在c#中access2003和access2007连接字符串
- c# Winform 下 的ftp传输控制
- c# 根据自定义Attribute排序
- C#文本框中默认是不允许使用全选的
- C# 二叉查找树实现
- C# 基础加强(二) 编译执行过程器
- C# 基础加强(一)可变参数params、索引器