c#怎么用循环查找数组相同元素的次数
展开全部
你如果一定要用循环来做这个,可以先建立一个字典对象,用来存每个元素和其出现的次数。
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());
}
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");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用循环,linq快些。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询