c# 怎么获取一个集合中重复的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 怎么获取一个集合中重复的数据相关的知识,希望对你有一定的参考价值。
比如这个集合,string[] str=1,2,1,3,5,2;怎么获取这样的值 string[] str1=1,2;
遍历集合,查找重复数据,将其中重复数据信息存放到Hashtable或Dictionary集合中。实现方法举例如下。
【例】查找List<int> 集合中重复的数据项,将数据项重复信息存放到Dictionary集合,最后输出结果。
using System;using System.Collections.Generic;
namespace ConsoleApplication1
/// <summary>
/// RepeatInfo用来描述重复项
/// </summary>
class RepeatInfo
// 值
public int Value get; set;
// 重复次数
public int RepeatNum get; set;
class Program
static void Main(string[] args)
// 整型列表集合。集合中有重复值
int[] a = 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 4, 3, 1, 2, 2, 1 ;
List<int> list =new List<int>(a);
// 显示整型列表集合
foreach (int v in list)
Console.Write("0 ", v);
Console.WriteLine();
// result集合存放扫描结果
Dictionary<int, RepeatInfo> result =
new Dictionary<int, RepeatInfo>();
// 遍历整型列表集合,查找其中的重复项
foreach (int v in list)
if (result.ContainsKey(v))
result[v].RepeatNum += 1;
else
RepeatInfo item =
new RepeatInfo() Value = v, RepeatNum = 1 ;
result.Add(v, item);
// 获取并打印出重复的数据
Console.WriteLine("集合中重复的数据:");
foreach (RepeatInfo info in result.Values)
if (info.RepeatNum > 1)
Console.WriteLine(" 数据项0 重复次数1",
info.Value, info.RepeatNum);
参考技术A 其实你能够写一个方法进行统计数字出现的次数 参考技术B 那个数组是string类型还是int类型呢?找个折中办法
var str1=str.GroupBy(i => i).Where(g => g.Count() > 1) 参考技术C int n=0;
for(int i=0;i<=str.Length-2;i++)
for(int j=i;j<=str.Length-1;j++)
if(str[i]==str[i+1])
str1[n]=str[i];
n++;
以上是关于c# 怎么获取一个集合中重复的数据的主要内容,如果未能解决你的问题,请参考以下文章