就是输出0~10之间4个不重复的数

解决方案 »

  1.   

    是随机么?那么多随机几次,同事用个List记录以前随机出来的值,发现相同就再随机,知道出现不同的。
      

  2.   

                List<int> arr = Enumerable.Range(0, 11).ToList<int>();
                List<int> result = new List<int>();
                Random ran = new Random();
                for (int i = 0; i < 4; i++)
                {
                    int temp = ran.Next(arr.Count);
                    result.Add(arr[temp]);
                    arr.RemoveAt(temp);
                }
      

  3.   


    IList<int> list = new List<int>();
            public void ProduceRandom()
            {
                while (true)
                {
                    Random rd = new Random();
                    int a = rd.Next(10);
                    if (list.Contains(a))
                        continue;                list.Add(a);
                    if (list.Count == 4)
                        break;
                }
            }
      

  4.   

            static void Main(string[] args)
            {
                List<int> list = new List<int>();
                for (int i = 0; i <= 10; i++)
                {
                    list.Add(i);
                }
                for (int i = 0; i < 4; i++)
                {
                    int index = r.Next(0, list.Count);
                    Console.WriteLine(list[index]);
                    list.Remove(index);
                }
                Console.ReadKey();
            }
      

  5.   

    static Random r = new Random();
      

  6.   


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//定义10个数            List<int> mlist=new List<int>(a);//装入LIST,便于删除操作            for (int m = 0; m < 4; m++)//m是需要输出的个数,不能超过10
                {
                    int b = mlist.Count;//随即删除list的元素,保证不重复
                    Random r = new Random();
                    int k = r.Next(b);
                    Console.WriteLine(mlist[k]);
                    mlist.Remove(k);
                }        }
        }
    }
      

  7.   

    1~10取不同的值: int[] temp = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
     int[] Block = new int[9] 
     Random rnd = new Random(); 
     int n;
     int j = 8;
     for (int i = 0; i <9; i++) 
     {
        n = rnd.Next(j);
        Block[i] = temp[n];
        temp[n] = temp[j];
        j--;
      }
      

  8.   

    不会的,因为数组没有remove元素的方法,所以构建LIST。
    每执行一次,都删除调LIST元素,下一次随机的时候,这个元素都不存在了,一定不会重复。
      

  9.   

    var num = Enumerable.Range(1, 10)  
        .Select(x => new { v = x, k = Guid.NewGuid().ToString() }).ToList()  
        .OrderBy(x => x.k)  
        .Select(x => x.v)  
        .Take(4).ToList();  
    foreach (var i in num)  
    {  
        Console.WriteLine(i);  
      

  10.   

     啧啧,楼上的能不能给些linq的学习链接?太牛了,什么都能用linq
      

  11.   


    似乎少了一个对 r的定义: Random r = new Random();另外,得到的结果还可能存在重复的情况