怎么样取数组的中不重复的元素呢?
一个string数组,我要取4次,如何取才能取出不重复的元素呢?

解决方案 »

  1.   

    一点技术含量都没有...
    str.GroupBy(c => c).Select(s => s.Key).OrderBy(k => Guid.NewGuid()).Take(4).ToList().ForEach((c) =>{ Console.WriteLine(c); });
      

  2.   


    private  string NewMethod( string [] s)
            {
              //  string[] s = new string[] { "5", "2", "5", "8", "8", "1", "1" };            List<string> L = new List<string>();            for (int j = 0; j < s.Length; j++)
                {
                    bool f = false;
                    L.Clear();
                    L.Add(s[j]);
                    for (int i = j + 1; i < s.Length; i++)
                    {
                        if (!L.Contains(s[i]))
                        {
                            L.Add(s[i]);
                            if (L.Count == 4)
                            {
                                f = true;
                                break;
                            }
                        }                }
                    if (f)
                    {
                        break;
                    }
                }
                string sr =null;
                if (L.Count != 4)
                    return null;
                foreach (string ss in L)
                    sr = sr + ss;
                return sr;
            }
      

  3.   


    private  string [] NewMethod( string [] s)
            {
              //  string[] s = new string[] { "5", "2", "5", "8", "8", "1", "1" };            List<string> L = new List<string>();            for (int j = 0; j < s.Length; j++)
                {
                    bool f = false;
                    L.Clear();
                    L.Add(s[j]);
                    for (int i = j + 1; i < s.Length; i++)
                    {
                        if (!L.Contains(s[i]))
                        {
                            L.Add(s[i]);
                            if (L.Count == 4)
                            {
                                f = true;
                                break;
                            }
                        }                }
                    if (f)
                    {
                        break;
                    }
                }
                string sr = "";
                if (L.Count != 4)
                    return null;
                foreach (string ss in L)
                    sr = sr + ss+",";
                return sr.Trim(',').Split(',');
            }
      

  4.   


     private  string [] NewMethod( string [] s,int n)//取n个
            {
              //  string[] s = new string[] { "5", "2", "5", "8", "8", "1", "1" };            List<string> L = new List<string>();            for (int j = 0; j < s.Length; j++)
                {
                    bool f = false;
                    L.Clear();
                    L.Add(s[j]);
                    for (int i = j + 1; i < s.Length; i++)
                    {
                        if (!L.Contains(s[i]))
                        {
                            L.Add(s[i]);
                            if (L.Count == n)
                            {
                                f = true;
                                break;
                            }
                        }                }
                    if (f)
                    {
                        break;
                    }
                }
                string sr = "";
                if (L.Count != n)
                    return null;
                foreach (string ss in L)
                    sr = sr + ss+",";
                return sr.Trim(',').Split(',');
            }