Auswählen eines zufälligen Elements aus einer Liste C # OOP [Duplikat]
Dec 29 2020
Ich habe zwei Methoden. Im ersten füge ich Elemente zu einer Liste mit dem Namen Personen hinzu. Im zweiten muss ich ein zufälliges Element aus der Liste (Personen) auswählen und den Namen der Person aus der Liste zurückgeben.
Ich bin mir nicht sicher, wie ich das machen soll. Ich habe versucht, eine Zufallszahl und einen Zufallsbuchstaben zu generieren, kann jedoch nicht verstehen, wie diese mit der Liste verwendet werden.
Jede Hilfe wäre sehr dankbar! Danke im Voraus
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();
}
Antworten
2 MestreDosMagros Dec 29 2020 at 07:40
Mit der Random-Klasse können Sie eine zufällige Ganzzahl im Bereich der Größe Ihrer Liste generieren. Hier ein Beispiel:
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
Was Sie suchen ist:
var person = PopulatePersons.Persons[yourRandomNumber];
Ihre Methode sollte also folgendermaßen aussehen:
static Person GetRandomPerson()
{
Random rndPerson= new Random();
int rndNumber = rnd.Next(0, PopulatePersons.Pesrons.Count);
return PopulatePersons.Persons[rndNumber];
}