如何生成给定数值数组中不存在的数值?

问题描述 投票:-1回答:1

我有这种方法来生成新的数值,但完成该功能需要很长时间。如何在快速approch中生成随机数?

 public int GeneratenewID(int[] OptionId)
    {
        Random ran = new Random();
        int SearchId = ran.Next(1, OptionId.Length*2);
        if (!OptionId.Contains(SearchId))
        {
            return SearchId;
        }
        else
        {
          return  GeneratenewID(OptionId);
        }
    }
c# random int
1个回答
0
投票

这肯定会起作用所以尝试:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            int [] OptionId=new int[]
            {
               0, 1,4,7,3,1,37,9
            };
            Program p = new Program();

          int a= p. GeneratenewID(OptionId);

        }


        public int GeneratenewID(int[] OptionId)
        {
            Random ran = new Random(1);
            int number = 0;
            for (int j = 0; j < OptionId.Length ; j++)
            {
               number =  ran.Next(OptionId.Length);
                if (!OptionId.Contains(number)) 
                    break; 
                else 
                    j--;
            }
            return number;
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.