如何找出字符串数组中的代表元素,就是说相同的元素只要一个,然后返回新的数组?

解决方案 »

  1.   

    private static char[] Diff()
            {
                string afterStr = string.Empty;
                string str = "aaabbcdddd";
                char[] ch = str.ToCharArray();
                var diff = ch.Distinct();
                foreach (var item in diff)
                {
                    afterStr += item;
                }
                return afterStr.ToCharArray();
            }是去除重复的吗?这样可行吗?
      

  2.   


     //第一种
                string[] str = new string[] { "1", "2", "3", "1", "2" };
                str = str.Distinct().ToArray();
                //第二种
                string[] str1 = null;
                List<string> list = new List<string>();
                foreach (var s in str)
                {
                    if (!list.Contains(s))
                    {
                        list.Add(s);
                    }
                }
                str1 = list.ToArray();
      

  3.   

    [b]Chinajiyong版主的第一种方法是最简单的了,不过需要用到Linq,而且区分大小写.
    要不区分大小写需要定义一个类来继承IEqualityComparer接口        public class StringComparer : IEqualityComparer<string>
            {
                public bool Equals(string x, string y)
                {
                    if (string.Compare(x, y, true) == 0)
                        return true;
                    return false;
                }            public int GetHashCode(string obj)
                {
                    return obj.ToUpper().GetHashCode();
                }
            }//用法
    str = str.Distinct(new StringComparer()).ToArray();
      

  4.   


     string[] arry = new string[] { "a", "a","b", "c", "c", "c", "d", "aa", "aa" };
     string[] newArray = arry.Distinct().ToArray();
      

  5.   

    额 不好意思 我的.Net 木有Linq命名空间 
      

  6.   


    .Net 3.5就有Linq了,是System.Linq 如果没有就有版主的第二种方法.