本帖最后由 caozhy 于 2013-08-16 11:53:21 编辑

解决方案 »

  1.   

    排列组合吧
    http://www.cnblogs.com/rogerwei/archive/2010/11/18/1880336.html
      

  2.   

    /// <summary>
        /// 获取不重复随机数的字符串数组
        /// </summary>
        /// <param name="num"></param>
        /// <param name="max"></param>
        /// <returns></returns>
        protected List<String> getRandomNum(int num,int max)
        {
            Random rd = new Random();        List<String> numArr = new List<String>();        while (numArr.Count < num)
            {
                int rdnum = rd.Next(1, max);
                if (!numArr.Contains(rdnum.ToString()))
                {
                    numArr.Add(rdnum.ToString());
                }
            }
            return numArr;
        }
    功能应该类似,稍微改下就好
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int n = 3;
                string[] are = { "1", "2", "3", "4", "5", "6" };
                var result = are.Select(x => new string[] { x });
                for (int i = 0; i < n - 1; i++)
                {
                    result = result.SelectMany(x => are.Where(y => y.CompareTo(x.First()) < 0).Select(y => new string[] { y }.Concat(x).ToArray()));
                }
                foreach (var item in result)
                {
                    Console.WriteLine(string.Join(", ", item));
                }
            }
        }
    }1, 2, 3
    1, 2, 4
    1, 3, 4
    2, 3, 4
    1, 2, 5
    1, 3, 5
    2, 3, 5
    1, 4, 5
    2, 4, 5
    3, 4, 5
    1, 2, 6
    1, 3, 6
    2, 3, 6
    1, 4, 6
    2, 4, 6
    3, 4, 6
    1, 5, 6
    2, 5, 6
    3, 5, 6
    4, 5, 6
    Press any key to continue . . .
      

  4.   

    linq大神...
    不过这lambda用的太吓人了吧
    从来没想过 声明式编程的璀璨明珠linq ,可以写出可读性这么差的代码(当然,也是我linq水平一般)
    个人感觉,如果中间产生了太多种类的匿名类型,则不太适合使用链式编程.