Ich bin neu in C# und lernen über List in OOP-Modell. Ich habe ein Problem beim Zugriff auf eine Liste, und wenn ich die Eingabeaufforderung benutze, ist sie leer.Versuchen, C# Listen und wie man darauf zugreifen, auch aus anderen Klassen
In der Suchklasse bekomme ich grundsätzlich eine Liste aller Personen (ich glaube ich bin) und suche nach den Erwachsenen (über 20 Jahre alt). Vom Main Ich versuche, die Liste der Erwachsenen auszudrucken. Es ist schwer, eine Antwort auf diese Frage zu finden.
Also das ist der Code:
class Program
{
static void Main(string[] args)
{
Search s = new Search();
List<Person> GameOfThrones = new List<Person>();
GameOfThrones.Add(new Person("Rob Stark", 20, Gender.Male));
GameOfThrones.Add(new Person("Sansa Stark", 16, Gender.Female));
GameOfThrones.Add(new Person("The Mountain", 30, Gender.Transgender));
GameOfThrones.Add(new Person("Mellisandra", 100, Gender.Female));
GameOfThrones.Add(new Person("Ramsey Bolton", 20, Gender.Male));
foreach(Person abc in s.getAdults())
{
Console.WriteLine(abc.ToString());
}
Console.ReadKey();
}
}
class Search
{
private List<Person> allPersons = new List<Person>();
public List<Person> Apl
{
get { return allPersons; }
}
public List<Person> getAdults()
{
List<Person> Adults = new List<Person>();
foreach (Person test in allPersons)
{
if (test.Age > 20)
{
Adults.Add(test);
//Console.WriteLine(test.ToString() + "\n");
}
}
return Adults;
}
public List<Person> allMales()
{
List<Person> males = new List<Person>();
foreach(Person per in allPersons)
{
if(per.GenderType == Gender.Male)
{
males.Add(per);
}
}
return males;
}
}
class Person
{
public Person(string name, int age, Gender gen)
{
this.Name = name;
this.Age = age;
this.GenderType = gen;
}
public string Name { get; set; }
public int Age { get; set; }
public Gender GenderType { get; set; }
public override string ToString()
{
return "Name: " + Name + "\nAge: " + Age + "\nGender: " + GenderType;
}
}
Vielen Dank auch sehr hilfreiche Erklärung! – KingBee