解决方案 »

  1.   

    为什么不是ABC ABD ACD BCD
      

  2.   

                var str = new[] {"A", "B", "C", "D"};            for (var i = 0; i < 4; i++)
                {
                    for (var j = i; j < 4; j++)
                    {
                        for (var k = j; k < 4; k++)
                        {
                            Console.WriteLine(str[i] + str[j] + str[k]);
                        }
                    }
                }
      

  3.   

     一个值只能取一次。而且不能重复取,比如A,B,C 取值了后不能在取了。
      

  4.   


    不重复的话就是            var str = new[] {"A", "B", "C", "D"};            for (var i = 0; i < 4; i++)
                {
                    for (var j = i + 1; j < 4; j++)
                    {
                        for (var k = j + 1; k < 4; k++)
                        {
                            Console.WriteLine(str[i] + str[j] + str[k]);
                        }
                    }
                }
      

  5.   

    http://www.codeproject.com/Articles/26050/Permutations-Combinations-and-Variations-using-C-G
      

  6.   

    用Sort方法对数组进行快速排序示例
    //生成数组
     private int[] G_int_value;//定义数组字段
            private Random G_Random = new Random();//创建随机数对象
     private void btn_Generate_Click(object sender, EventArgs e)
            {
                G_int_value = new int[G_Random.Next(10, 20)];//生成随机长度数组
                for (int i = 0; i < G_int_value.Length; i++)//遍历数组
                {
                    G_int_value[i] = G_Random.Next(0, 100);//为数组赋随机数值
                }
                txt_str.Clear();//清空控件内字符串
                foreach (int i in G_int_value)//遍历字符串集合
                {
                    txt_str.Text +=i.ToString() + ", ";//向控件内添加字符串
                }
            }
    //对数组进行排序
     private void btn_sort_Click(object sender, EventArgs e)
            {
                if (G_int_value != null)
                {
                    Array.Sort(G_int_value);//使用Sort方法对数组排序
                    txt_str2.Clear();//清空控件内字符串
                    foreach (int i in G_int_value)//遍历字符串集合
                    {
                        txt_str2.Text += i.ToString() + ", ";//向控件内添加字符串
                    }
                }
                else
                {
                    MessageBox.Show("首先应当生成数组,然后再进行排序。","提示!");
                }
            }
      

  7.   

    参照别人写的排列组合类
    比如:string[] list = new string[] { "B", "A", "C", "D" };
    List<string[]> lst_Combination = Algorithms.PermutationAndCombination<string>.GetCombination(list, 3).Distinct().ToList();
    foreach (var i in lst_Combination)
    {
           Console.WriteLine(string.Join(",", i.OrderBy(x=>x).ToArray()));
    }