C#找出数组中重复次数最多的数值
生活随笔
收集整理的這篇文章主要介紹了
C#找出数组中重复次数最多的数值
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給定一個int數(shù)組,里面存在重復(fù)的數(shù)值,如何找到重復(fù)次數(shù)最多的數(shù)值呢?
這是在某社區(qū)上有人提出的問題,我想到的解決方法是分組。
1、先對數(shù)組中的所有元素進(jìn)行分組,那么,重復(fù)的數(shù)值肯定會被放到一組中;
2、將分組進(jìn)行排序,排序條件是分組中的元素個數(shù);
3、元素數(shù)量最多的那個分組中的數(shù)值就是重復(fù)次數(shù)最多的。
?
基于以上思路,可以寫出以下代碼:
// 示例數(shù)組,90重復(fù)4次,1重復(fù)2次,3重復(fù)3次int[] arr = { 1, 1, 3, 3, 3, 7, 50, 15, 15, 90, 90, 90, 90, 105 };/** 先將數(shù)組各元素進(jìn)行分組,* 然后將每個組中的元素個數(shù)按降序排列*/var res = from n in arrgroup n by n into gorderby g.Count() descendingselect g;// 分組中第一個組就是重復(fù)最多的var gr = res.First();foreach (int x in gr){Console.Write(" {0}",x);}在示例數(shù)組中,1出現(xiàn)了兩次,3出現(xiàn)了三次,15出現(xiàn)兩次,90出現(xiàn)四次。顯然,重復(fù)次數(shù)最多的是90。
使用Linq語句將源數(shù)組中的所有元素,按照元素自身進(jìn)行分組,然后用Count方法計算每個組中的元素個數(shù),并按降序排列。得到的結(jié)果中的第一個分組,其里面的元素自然是重復(fù)次數(shù)最多的了。
故輸出結(jié)果為:
由于我的人品值有限,只能想出這個較為簡單的方法處理,各位觀眾,要是你有更簡便的方法,一定要貼出來,不要“金屋藏嬌”。
轉(zhuǎn)載于:https://www.cnblogs.com/tcjiaan/p/4084873.html
總結(jié)
以上是生活随笔為你收集整理的C#找出数组中重复次数最多的数值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UGUI学习笔记之渲染顺序
- 下一篇: Javascript – 正则表达式