有简单一点的方法没有  ,求大神指教!

解决方案 »

  1.   

    循环把。  public static ArrayList DedupStringList(ArrayList list)
            {
                if (list == null)
              {
                    return new ArrayList(0);
                }            ArrayList result = new ArrayList();
                Dictionary<string, string> hashset = new Dictionary<string, string>();
                foreach (string str in list)
               {
                    if (string.IsNullOrEmpty(str.Trim()))
                   {
                        continue;
                    }                string s = str.Trim().ToLower();                if (!hashset.ContainsKey(s))
                    {
                        hashset.Add(s, string.Empty);
                        result.Add(s);
                    }
                }            result.TrimToSize();
                return result;
            }
      

  2.   

    Contains 就只这样
         ArrayList result = new ArrayList() { 1, 2, 3, 3 };
                ArrayList result2 = new ArrayList();
                foreach (var r in result)
                {
                    if (!result2.Contains(r)) result2.Add(r);
                }
      

  3.   

     ArrayList result1 = new ArrayList() { 1, 2, 3, 4, 5, 6 };
                ArrayList result2 = new ArrayList() { 5, 6, 7, 8, 9, 10 };
                result1.AddRange(result2);
                var source = result1.Cast<int>().Distinct().ToArray();
                
      

  4.   

    ArrayList result1 = new ArrayList() { "a", "b", "c", "d",};
                ArrayList result2 = new ArrayList() { "a", "b", "e", "f", "g",};
                result1.AddRange(result2);
                var result = result1.Cast<string>().Distinct().ToArray();
      

  5.   


    public static void Main(string[] args) { int[] A = { 1, 2, 2, 4, 5, 3 }; int[] B = { 2, 4, 5, 7, 5, 6, 8 }; //1.1, 合并以上两个数组,合并结果不包含重复项,并排序。 //要求结果为: 1,2,3,4,5,6,7,8 A.Concat(B).Distinct().OrderBy(i => i).ToList().ForEach(i => Console.Write(i.ToString())); Console.WriteLine(Environment.NewLine); //2,去除以上两个数组中所有重复项,并合并,并排序。 //要求结果为: 1,3,6,7,8 A.Except(B).Concat(B.Except(A)).OrderBy(i => i).ToList().ForEach(i => Console.Write(i.ToString())); } 
      

  6.   


     public static void Main(string[] args) { 
                     int[] A = { 1, 2, 2, 4, 5, 3 };
                     int[] B = { 2, 4, 5, 7, 5, 6, 8 }; 
                 //1.1, 合并以上两个数组,合并结果不包含重复项,并排序。
                //要求结果为: 1,2,3,4,5,6,7,8
                   A.Concat(B).Distinct().OrderBy(i => i).ToList().ForEach(i => Console.Write(i.ToString()));
                 Console.WriteLine(Environment.NewLine);
                //2,去除以上两个数组中所有重复项,并合并,并排序。
                //要求结果为: 1,3,6,7,8
     A.Except(B).Concat(B.Except(A)).OrderBy(i => i).ToList().ForEach(i => Console.Write(i.ToString()));
    }
      

  7.   

    干吗用Contains
    直接Union 合并的同时去掉重复的,多好
      

  8.   

    谢谢大家对小弟的支持,我是刚学C#,学到Contains这个属性了,不懂怎么去用,上面大家说的有得我能看得懂,Concat(B).Distinct().OrderBy(i => i).ToList().ForEach像这几个属性我就没学过,能给解释一下吗?