c#怎么用循环查找数组相同元素的次数

 我来答
百度网友154139e
推荐于2017-12-16 · TA获得超过413个赞
知道小有建树答主
回答量:295
采纳率:50%
帮助的人:247万
展开全部
你如果一定要用循环来做这个,可以先建立一个字典对象,用来存每个元素和其出现的次数。
int[] arr = new int[10] { 8, 7, 8, 7, 9, 1, 2, 3, 4, 5 };
//建立一个字典用来统计相同元素
Dictionary<int, int> lst = new Dictionary<int, int>();
foreach (var obj in arr)

{
if (lst.ContainsKey(obj))
{
lst[obj]++; //如果已经出现的元素就加次数
}
else{
lst.Add(obj, 1); //没有出现的元素加到字典中
}
}
foreach (var obj in lst)

{
Console.WriteLine(obj.Key.ToString() + ":" + obj.Value.ToString());
}
其他的方法,你可以lamb来简单代码,其实跟循环差不多,不过少写很多代码。
//数组还是用上面的arr
foreach (var grp in arr.GroupBy(c=>c))
{
Consloe.WriteLine(grp.Key.ToString() + ":" + grp.Count().ToString());
}
匿名用户
2016-11-08
展开全部
   int[] aar = { 1, 223, 223, 22, 15, 18, 1, 9, 19, 223, 22, 0, 1 };
            int[] aarName = new int[aar.Length];//记录名称
            int[] aarNum = new int[aar.Length];//记录个数
            int index = 0;//索引位置
            foreach (int i in aar)
            {
                int count=0;//统计总数
                if (!aarName.Contains(i))//判断是否包含 不包含 则统计
                {
                    foreach (int j in aar)
                    {
                        if (i == j)//如果有相等 则总数加一
                        {
                            count++;
                        }
                        
                    }
                    aarName[index] = i;
                    aarNum[index] = count;
                    index++;
                }
            
            }

            for (int i = 0; i < index; i++)//输出结果
            {
                textBox1.Text +=(aarName[i].ToString()+"的值有:"+aarNum[i].ToString()+"个\r\n");
            }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2016-11-08 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7650万
展开全部
不用循环,linq快些。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式