C # OOP [çoğalt] listesinden rastgele bir öğe seçme
Dec 29 2020
İki yöntemim var. İlkinde Kişiler adlı bir listeye öğeler ekliyorum. İkincisinde, listeden (Kişiler) rastgele bir öğe seçmem ve listeden kişinin adını döndürmem gerekiyor.
Bunu nasıl yapacağımdan emin değilim. Rastgele bir sayı ve rastgele bir harf oluşturmayı denedim ancak bunları listeyle nasıl kullanacağımı anlayamıyorum.
Herhangi bir yardım çok takdir edilecektir! Şimdiden teşekkür ederim
static void PopulatePersons()
{
Person Bill = new Person("Bill", "no", "brown", 'm');
Person Eric = new Person("Eric", "yes", "brown", 'm');
Person Robert = new Person("Robert", "no", "blue", 'm');
Person George = new Person("George", "yes", "brown", 'm');
Person Herman = new Person("Herman", "no", "green", 'm');
Person Anita = new Person("Anita", "no", "blue", 'f');
Person Maria = new Person("Maria", "yes", "green", 'f');
Person Susan = new Person("Susan", "no", "brown", 'f');
Person Claire = new Person("Claire", "yes", "brown", 'f');
Person Anne = new Person("Anne", "no", "brown", 'f');
Persons = new List<Person>()
{ Bill, Eric, Robert, George, Herman, Anita, Maria, Susan, Claire, Anne };
}
static Person GetRandomPerson()
{
PopulatePersons();
}
Yanıtlar
2 MestreDosMagros Dec 29 2020 at 07:40
Listenizin boyut aralığı içinde rastgele bir tamsayı oluşturmak için Random sınıfını kullanabilirsiniz, işte bir örnek:
public class Program
{
public static void Main()
{
var persons = PopulatePersons();
var random = new Random();
var randomPeople = persons.ElementAt(random.Next(0, persons.Count));
Console.WriteLine(randomPeople.Name);
}
public static List<Person> PopulatePersons()
{
Person Bill = new Person("Bill");
Person Eric = new Person("Eric");
Person Robert = new Person("Robert");
Person George = new Person("George");
Person Herman = new Person("Herman");
Person Anita = new Person("Anita");
return new List<Person>() { Bill, Eric, Robert, George, Herman, Anita };
}
public class Person
{
public Person(string name)
{
Name = name;
}
public string Name {get;set;}
}
}
2 DavidB Dec 29 2020 at 07:44
Aradığınız şey:
var person = PopulatePersons.Persons[yourRandomNumber];
Yani yönteminiz şöyle görünmelidir:
static Person GetRandomPerson()
{
Random rndPerson= new Random();
int rndNumber = rnd.Next(0, PopulatePersons.Pesrons.Count);
return PopulatePersons.Persons[rndNumber];
}
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'