Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何显示数组中重复的所有值。_C#_Arrays_Forms_Show_Repeat - Fatal编程技术网

C# 如何显示数组中重复的所有值。

C# 如何显示数组中重复的所有值。,c#,arrays,forms,show,repeat,C#,Arrays,Forms,Show,Repeat,我真的希望你能在这方面帮助我:我目前正在使用Windows窗体,我需要在MessageBox或标签中显示数组中重复的所有值。例如,如果我的数组存储以下数字:{3,5,3,6,6,6,7} 我需要能够阅读它,抓取并展示那些重复的,在这种情况下是3次2次和6次3次。。。谢谢你的时间 LINQ可以帮上忙 var array = new int[] { 3, 5, 3, 6, 6, 6, 7 }; var counts = array.GroupBy(n => n) // Group by the

我真的希望你能在这方面帮助我:我目前正在使用Windows窗体,我需要在MessageBox或标签中显示数组中重复的所有值。例如,如果我的数组存储以下数字:{3,5,3,6,6,6,7} 我需要能够阅读它,抓取并展示那些重复的,在这种情况下是3次2次和6次3次。。。谢谢你的时间

LINQ可以帮上忙

var array = new int[] { 3, 5, 3, 6, 6, 6, 7 };
var counts = array.GroupBy(n => n) // Group by the elements based their values.
                  .Where(g => g.Count() > 1) // Get's only groups that have value more than one
                  .Select(k => k.Key) // Get this key values
                  .ToList();
计数将是
List
,其值为
3
6

如果您想同时获取计数值及其值,请查看。

代码的“核心”逻辑可能如下所示:

     var array = new [] { 3, 5, 3, 6, 6, 6, 7 };
     var duplicates = array.Where(number => array.Count(entry => entry == number) > 1).Distinct();
要获得Seminda示例中的输出,只需省略final.Distinct()

var numbers = new int[]{3, 5, 3, 6, 6, 6, 7};
var counterDic = new Dictionary<int,int>();
    foreach(var num in numbers)
    {
        if (!counterDic.ContainsKey(num))
{
            counterDic[num] = 1;
}
else 
{
        counterDic[num] ++;
}
    }
var number=newint[]{3,5,3,6,6,7};
var counterDic=新字典();
foreach(数值形式的变量num)
{
如果(!counterDic.ContainsKey(num))
{
计数器DIC[num]=1;
}
其他的
{
计数器dic[num]++;
}
}

正如其他人提到的,林克也是一种可能性。但是它很慢(无论如何,性能不应该是决定因素)。

如果你想得到像{3,3,6,6,6}这样的结果输出,就这样做吧

int[] my = new int[] { 3, 5, 3, 6, 6, 6, 7 };
        //List<int> lst = my.OfType<int>().ToList();
        var query = my.GroupBy(x => x)
          .Where(g => g.Count() > 1)
          .SelectMany(m=>m)
          .ToList();
int[]my=newint[]{3,5,3,6,6,6,7};
//List lst=my.OfType().ToList();
var query=my.GroupBy(x=>x)
.Where(g=>g.Count()>1)
.SelectMany(m=>m)
.ToList();
var数组=newint[]{3,5,3,6,6,7};
字典计数=数组.GroupBy(x=>x)
.Where(g=>g.Count()>1)
.ToDictionary(g=>g.Key,g=>g.Count());
KeyValuePair
s的值是计数

var array = new int[] { 3, 5, 3, 6, 6, 6, 7 };
Dictionary<int, int> counts = array.GroupBy(x => x)
                                  .Where(g => g.Count() > 1)
                                  .ToDictionary(g => g.Key, g => g.Count());