如何判断string数组中是否有重复的元素?
或者如何判断泛型集合中有重复的元素?

解决方案 »

  1.   

    str.Distinct().Count()
    str.Length
    比较下
      

  2.   

    方法很多,推荐一种吧!可以将数组中的元素放到一个hashset中,判断数组和set的长度是否相同!
    set的优点之一是不包含重复的元素!
      

  3.   

    LIST.ContainsN种方法
      

  4.   

    int[] ary = new int[] { 1, 3, 3, 4, 5, 4 };
      var q = from x in ary
      group x by x into Y   
      select {Y.Key,Y.Count()};
    Dictionary<int, int> dict = new Dictionary<int, int>();
    foreach (int i in arr)
    {
      if (dict.ContainsKey(i)) dict[i]++;
      else dict.Add(i, 1);
    }
      

  5.   

      也许是我没说清楚
        我想判断一个二维数组中  某个元素中的某个元素是否相同
     string [][] str= {{"姓名","年龄","工作单位","住址"},{"姓名","年龄","工作单位","住址"},{"姓名","年龄","工作单位","住址"}};
    // 我就知道如何判断该数组中 姓名是否有重复的
    //我现在思维有点小混乱
      

  6.   

    用递归吧 调用的时候start设为0就可以了
    public bool IsRepeat(List<string> m_list,int start)
            {
                string index = m_list[start];
                for (int i = start+1; i <m_list.Count; i++)
                {
                    if (m_list[i] == index)
                        return false;
                }
                IsRepeat(m_list, start + 1);
                return true;
            }
      

  7.   

    二维数组是  string [,]
    用泛型类 好操作点,List<> lists=new ...........
    bool isTrue= Lists.GroupBy(g => g.姓名).Any(a => a.Count() > 1);
      

  8.   

      我刚就想到了用linkq 但是我不会  我想取得姓名相同的数据  语句如何写?
      

  9.   

    泛型格式 List<List<object>>
      

  10.   

    list中好像有个方法是剔除一样的数据的,如果用了这个方法的跟没用这个方法之前的list的长度一样就是没有相同的了,否则就是有了!
      

  11.   

    ArrayList list=new Arraylist();
    list.Add();
    if(list.Contatins())
    list.Remove();
      

  12.   


     //这是我自己想到的可以使用的方法  呵呵 如有不对之处 请指正
    List<List<object>> feedback= new List<List<object>>();
    List<List<object>> name = new List<List<object>>();
                int number = 0;
                for (int i = 0; i < feedback.Count; i++)
                {
                    if (feedback[i][7] == null)
                    { continue; }
                    string str = feedback[i][7].ToString();
                    if (i+1 == feedback.Count)
                    {
                        break;
                    }
                    if (str == feedback[i + 1][7].ToString())
                    {
                        number = i;
                    }
                }
                if (number > 1)
                {
                    name.Add(feedback[number]);
                    name.Add(feedback[number + 1]);
                    feedback.RemoveAt(number);
                    feedback.RemoveAt(number);
                }