การเลือกรายการแบบสุ่มจากรายการ C # OOP [ซ้ำ]
Dec 29 2020
ฉันมีสองวิธี ในรายการแรกฉันกำลังเพิ่มรายการในรายการที่เรียกว่าบุคคล ในวินาทีที่ฉันต้องเลือกรายการแบบสุ่มจากรายการ (บุคคล) และส่งคืนชื่อของบุคคลจากรายการ
ฉันไม่แน่ใจว่าต้องทำอย่างไร ฉันได้ลองสร้างตัวเลขสุ่มและตัวอักษรแบบสุ่มแล้ว แต่ฉันไม่เข้าใจวิธีใช้สิ่งเหล่านี้กับรายการ
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก! ขอบคุณล่วงหน้า
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();
}
คำตอบ
2 MestreDosMagros Dec 29 2020 at 07:40
คุณสามารถใช้คลาสสุ่มเพื่อสร้างจำนวนเต็มสุ่มภายในช่วงของขนาดรายการของคุณนี่คือตัวอย่าง:
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
สิ่งที่คุณกำลังมองหาคือ:
var person = PopulatePersons.Persons[yourRandomNumber];
ดังนั้นวิธีการของคุณควรมีลักษณะดังนี้:
static Person GetRandomPerson()
{
Random rndPerson= new Random();
int rndNumber = rnd.Next(0, PopulatePersons.Pesrons.Count);
return PopulatePersons.Persons[rndNumber];
}