标题:求助:如何将一维数组中不同的值找出来,并统计各值出现次数?
只看楼主
麻将刘
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-3-31
结帖率:100%
已结贴  问题点数:20 回复次数:6 
求助:如何将一维数组中不同的值找出来,并统计各值出现次数?
新手再次求助!多谢各位!
我有一个数组,比如{1,2,3,2,3,6},当然是假设。因为事先并不知道元素值。需要统计出各元素值及出现次数,如何实现呢?请指点?
搜索更多相关主题的帖子: 统计 
2010-07-07 11:27
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
循环,将结果放到Dictionary中

飘过~~
2010-07-07 12:05
麻将刘
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-3-31
得分:0 
以下是引用bygg在2010-7-7 12:05:18的发言:

循环,将结果放到Dictionary中
能具体点吗?能否写代码呢?谢谢!
2010-07-07 15:53
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:20 
程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            int[] testDataList = new int[] { 1, 2, 3, 2, 3, 6 ,6,1,1,3,3};

            Stat1(testDataList);

            Console.WriteLine("************************");

            Stat2(testDataList);

            Console.Read();
        }

        /// <summary>
        /// 方法一
        /// </summary>
        /// <param name="testDataList"></param>
        static void Stat1(int[] testDataList)
        {
            Dictionary<int, int> statDic = new Dictionary<int, int>();
            foreach (int i in testDataList)
            {
                //还不存在于statDic中
                if (!statDic.ContainsKey(i))
                {
                    statDic.Add(i, 1);
                }
                else    //已经存在了,就在value中加一
                {
                    statDic[i] += 1;
                }
            }

            foreach (int key in statDic.Keys)
            {
                Console.WriteLine("{0} -> {1}", key.ToString(), statDic[key].ToString());
            }
        }

        /// <summary>
        /// 方法二
        /// </summary>
        /// <param name="testDataList"></param>
        static void Stat2(int[] testDataList)
        {
            List<DataT> lists = new List<DataT>();
            foreach (int i in testDataList)
            {
                DataT t = new DataT();
                t.ID = i;

                lists.Add(t);
            }

            var q = from t1 in lists
                    group t1 by t1.ID into g
                    select new
                    {
                        g.Key,
                        Stat = g.Count(p => p.ID == g.Key)
                    };

            foreach (var q1 in q)
            {
                Console.WriteLine("{0} -> {1}", q1.Key.ToString(), q1.Stat.ToString());
            }
        }
    }

    public class DataT
    {
        public int ID { get; set; }
    }
}

飘过~~
2010-07-07 17:19
麻将刘
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-3-31
得分:0 
多谢!我也知道怎么用了。
2010-07-07 22:50
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
不客气。

飘过~~
2010-07-08 09:13
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
得分:0 
关于此题,如何用 c#的 最简单的 一维数组 和 二维数组来写代码?

有关于统计的函数吗?

没看懂楼上的代码。

求热心的老师大侠帮忙指导,多谢啦!!!


[ 本帖最后由 learnerok 于 2012-1-24 20:44 编辑 ]
2012-01-24 20:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-312333-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059419 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved