さて、このタイトルは誤解を招くかもしれませんが、私は実際に自分の問題をよりよく説明することができませんでした。私は最初の名前の配列と姓の配列をとるプログラムを作成しようとしており、これらの名前を完全な名前の配列にまとめています。ここで問題となるのは、同じ名前が2回発生しないようにすることです。firstname [randomindex]とlastname [randomindex]の組み合わせがフルネームの配列に既に含まれている場合は、乱数使用されていない組み合わせが見つかるまでインデックスに使用されます。これまで私はちょっとこのままでした:これまで使用されていなかったプログラムが見つかるまで、プログラムは新しい乱数を生成し続けますか?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _100randompersons
{
class Fyldefylde
{
private string[] firstnames;
private string[] lastnames;
private string[] fullnames;
private Random random;
public Fyldefylde()
{
firstnames = new string[10] { "Kim", "Allan", "Frank", "Lone", "Line", "Anne", "Per", "Bo", "Grethe", "Mette" };
lastnames = new string[10] { "Pedersen", "Nielsen", "Hansen", "Larsen", "Nygaard", "Harboe", "Bendix", "Højris", "Pilgaard", "Nyager" };
fullnames = new string[100];
random = new Random();
}
public string[] getFirstNames()
{
return firstnames;
}
public string[] getLastNames()
{
return lastnames;
}
public string[] getFullNames()
{
return fullnames;
}
public int getRandomIndex(int min, int max)
{
int randomnumber = random.Next(min, max);
return randomnumber;
}
public void fillFullNames()
{
for(int i = 0; i < fullnames.Length; i++)
{
getRandomIndex(0, 10);
while(fullnames.Contains(firstnames[getRandomIndex(0,10)] + " " + lastnames[getRandomIndex(0,10)]))
{
fullnames[i] = firstnames[getRandomIndex(0, 10)] + " " + lastnames[getRandomIndex(0, 10)];
}
}
}
}
}
ありがとうございます!
Random rnd = new Random();
string[] random_full_name = fullname.OrderBy(x => rnd.Next()).ToArray();
あなたは、あなたのを達成するために連続して、この新しい配列を読み出す::)
理由それはランダムですか?すべての組み合わせを反復するネストされた 'for 'でフルネームを入力するだけです – prof1990
固定数のランダムな組み合わせまたはすべての可能な組み合わせを生成しようとしていますか?前者では無作為で、後者では無意味です。 – InBetween