C#中将数组中相同的元素提取出来如何实现?

2024-12-27 23:46:04
推荐回答(3个)
回答1:

很简单啊,用集合或者字典都可以。

建一个字典,数字作为键,出现次数作为值,遍历数组,假如字典里没有,就加到字典里,字典里有,就把次数加一。            

            int[] nums={1,1,2,3,1,2,1,3,3}; 
            Dictionary dic = new Dictionary();
            for (int i = 0; i < nums.Length; i++)
            {
                if (!dic.ContainsKey(nums[i]))    //字典里没有这个数
                { dic.Add(nums[i], 1); }         //加进去,设置出现的次数为一次
                else
                { dic[nums[i]]+= 1; }        //有这个数,次数加一
            }
            foreach (var item in dic)
            {
                Console.WriteLine(item.Key+"出现了"+item.Value+"次");
            }
            Console.ReadKey();

回答2:

        //using System.Linq;
        static void Main(string[] args)
        {
            int[] nums = new int[] { 1, 1, 2, 3, 1, 2, 1, 3, 3 };
            var v = from arr in nums
                    group arr by arr into g
                    select new
                    {
                        g.Key,
                        c = g.Count()
                    };

            foreach (var r in v)
                Console.WriteLine("num={0},count={1}", r.Key, r.c);

            Console.ReadLine();
        }

回答3:

我想到一个比较笨的方法。
新建一个二维数组2,然后遍历你的数组1,数组1的第一个元素和其他元素匹配,然后放入数组2。
然后循环,就能得到结果了。