एक सूची 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];
}