黑马程序员技术交流社区

标题: 去除数组中重复的项 [打印本页]

作者: 李君言    时间: 2013-4-23 01:47
标题: 去除数组中重复的项
本帖最后由 李君言 于 2013-4-23 10:41 编辑

            string[] num = { "a", "b", "a", "c", "d", "e", "c", "d", };
            for (int a = 0; a < num.Length; a++)
            {
                for (int b = 0; b < num.Length; b++)
                {
                    if (a != b)
                    {
                        if (num[a] == num)
                        {
                            num = "!";
                        }
                    }
                }
            }
            for (int i = 0; i < num.Length; i++)
            {
                if (num != "!")
                Console.WriteLine(num);
            }
上面是我写的代码,通过比较把重复的字符标记成!,最后面不输出!,但是这个!却是还在这个数组中没有真正去除,不知该如何真正的去掉。

num  = num.Distinct().ToArray();
然后在网上看到这个代码,感觉就这句实现了这个功能。。。谁可以帮忙说下这句代码吗?谢谢!

作者: 覃庆健    时间: 2013-4-23 04:00
            //个人感觉查找重复对象还是用列表List<T> 比较好 , 你可以查找MSDN的List<T>类 , T是变量类型.  挺好用的 , 建议你学习下.
            //这样写可以简化代码 , 下面的IEnumerable<T>为泛型借口 , 用于在集合上进行简单的迭代(MSDN中的说法), 更具体的我还没弄通 ...^^。

            List<string> num =new List<string> { "a", "b", "a", "c", "d", "e", "c", "d", };   //新建一个字符串类型的数组列表
            IEnumerable<string> Temp = num.Distinct();   //关键!--->Distinct()  用于移除列表中的重复元素,移除后将重复元素中的一个元素赋给Temp集合
            Console.WriteLine("结果为: ");
            foreach (string output in Temp)   //遍历输出集合中的元素
            {
                Console.WriteLine(output);   //输出
            }
            Console.ReadKey();
作者: 李君言    时间: 2013-4-23 09:42
覃庆健 发表于 2013-4-23 04:00
//个人感觉查找重复对象还是用列表List 比较好 , 你可以查找MSDN的List类 , T是变量类型.  挺 ...

:D 目前还在学习编程基础阶段,懂的代码还很少
作者: 陈帅    时间: 2013-4-23 10:04
  1. string[] num = { "a", "b", "a", "c", "d", "e", "c", "d", };
  2.             num = num.Distinct().ToArray();//这里Distinct()方法是使用默认的相等比较器对值进行比较,返回非重复元素,然后再通过ToArray()方法返回一个string数组
  3.             foreach (string item in num)//这里再用foreach循环遍历输出
  4.             {
  5.                 Console.WriteLine(item);
  6.             }
  7.             Console.ReadKey();
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2