glätten kann Ich weiß, dass es irgendwo eine LINQ
Lösung gibt, ich kann es einfach nicht sehen. Die Situation, die ich habe ist folgendes: Ich habe ein base class
(nennen wir es können B, denn jetzt), die eine Vararg akzeptiert und verwendet es eine readonly
Feld zu initialisieren, die ein IReadonlyCollection
(nennen wir dieses Feld Liste) passiert sein . Wie man die Verkettung von IEnumerables von IEnumerables
Ich habe zwei derived classes
(nennen wir sie D1 und D2), die genau die gleiche Sache mit ihren Vararg Argument tun, um es in die base class
Konstruktor, keine Probleme gibt.
Ich habe aber ein drittes derived class
aus, abgeleitet (dieses D_1_and_2 einem lässt nennen) die gleiche base class
, B, die für den Konstruktor 2 Arrays als Parameter übernimmt, eine vom Typ D1[]
und die andere vom Typ D2[]
.
Mein Problem ist, irgendwie muss ich die alle Elemente des ersten Parameters verketten (der D1[]
Parameter) List
Felder miteinander und mit all den Elementen der zweiten List
Felder des Paramenter und übergeben die resultierenden Array der base class
während der Konstruktion. Unten ist eine Illustration des Problems im Code.
public class CollectionElement
{
}
public class BaseClass
{
public readonly IReadOnlyCollection<CollectionElement> TheCollection;
public BaseClass(params CollectionElement[] arg)
{
TheCollection = Arrays.AsReadOnly(arg);
}
}
public class DerivedClassA : BaseClass
{
public DerivedClass(params CollectionElement[] arg)
:base(arg){}
}
public class DerivedClassB : BaseClass
{
public DerivedClass(params CollectionElement[] arg)
:base(arg){}
}
public class DerivedClassA_Plus_B : BaseClass
{
public DerivedClass(DerivedClassA[] argA, DerivedClassB[] argB)
:base(/*[don't know]*/){}
}
Das war es! Vielen Dank! – FinnTheHuman