J'ai deux listes. Les types des deux listes héritent du même type de base. Je veux les parcourir et faire des opérations qui n'utilisent que la fonctionnalité de la classe de base sans avoir deux boucles foreach fondamentalement identiques l'une après l'autre.Itération à travers deux listes de deux classes héritées (de la même classe de base)
Je ne peux pas copier les listes vers une autre liste ou quelque chose du genre, car j'ai besoin d'utiliser les listes dans leur forme originale séparément après que l'opération soit terminée.
Existe-t-il un moyen de le faire sans écrire de fonction?
class Program
{
static void Main(string[] args)
{
// I have two lists of inherited classes
List<Babby1> list1 = returnBabby1();
List<Babby2> list2 = returnBabby2();
// I want to iterate through both, and do the same thing, which is a part
// of the base class functionality.
// Basically I want this to be a single foreach loop.
foreach (Babby1 item in list1)
item.var = 50;
foreach (Babby2 item in list2)
item.var = 50;
// I have to send them as separate lists, the type being the original (inherited) class
sendBabby1(list1);
sendBabby2(list2);
}
static void sendBabby1(List<Babby1> list)
{
}
static void sendBabby2(List<Babby2> list)
{
}
static List<Babby1> returnBabby1()
{
return new List<Babby1>();
}
static List<Babby2> returnBabby2()
{
return new List<Babby2>();
}
}
class Base
{
public int var;
}
class Babby1 : Base
{
public int var1;
}
class Babby2 : Base
{
public int var2;
}
Vous avez deux listes distinctes, de sorte que vous ne pouvez pas les énumérer comme l'un sans créer une nouvelle liste. – slugster