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# 怎么获取一个集合中重复的数据的主要内容,如果未能解决你的问题,请参考以下文章

C# 2个List集合重复数据筛选

如何在c#中将数据添加到集合列表中[重复]

C#的问题,怎么在List集合中筛选数据?

C#的问题,怎么在List集合中筛选数据?

C#的问题,怎么在List集合中筛选数据?

怎样获取list集合里面的重复值