Ich habe 2 Sammlungen von 2 verschiedenen Typen, aber habe fast den gleichen Satz von Feldern. In einer Funktion muss ich eine der Sammlungen durchlaufen, abhängig von einer Bedingung. Ich möchte nur einen Codeblock schreiben, der beide Fälle abdeckt. Beispiel: Ich habe den folgenden Code:Wie verwende ich den gleichen Foreach Code für 2 Kollektionen?
if (condition1)
{
foreach(var type1var in Type1Collection)
{
// Do some code here
type1var.Notes = "note";
type1var.Price = 1;
}
}
else
{
foreach(var type2var in Type2Collection)
{
// the same code logic is used here
type2var.Notes = "note";
type2var.Price = 1;
}
}
Jetzt: Ich habe diesen Code vereinfachen wollen nur einmal die gleiche Logik zu verwenden (wie sie identisch sind), so etwas wie die folgenden (PS: Ich weiß, das folgende Code nicht richtig ist, ich bin nur zu erklären, was ich tun möchte):
var typecollection = Condition1 ? Type1Collection : Type2Collection;
foreach(var typevar in TypeCollection)
{
// the same code logic is used here
typevar.Notes = "note";
typevar.Price = 1;
}
die Definition von Typ1 & Typ2 wie dem folgenden Code ähnlich ist (Eigentlich sind sie Objekte Entity):
public class Type1 : EntityObject
{
public int Type1ID { get; set; }
public int Type1MasterID { get; set; }
public String Notes { get; set; }
public decimal Price { get; set; }
}
public class Type2 : EntityObject
{
public int Type2ID { get; set; }
public int Type2MasterID { get; set; }
public String Notes { get; set; }
public decimal Price { get; set; }
}
Update 1:
ich einige Beispiel-Code enthalten sind, die ich in foreach Block bin mit (ich eine öffentliche Eigenschaften der 2 Typen am Zugriff).
Update 2:
I Probe Typ1 & Typ2 Definitionen enthalten sind, wie Sie Ich habe 2 gemeinsame öffentliche Eigenschaften in beiden Klassen sehen, die ich in foreach-Block aktualisiert werden soll.
Update 3:
ich für die Verwirrung bedaure, Typ1 & Typ2 aus EntityObject abgeleitet (Sie sind beide Teil meines Entitätsmodell und die Type1Collection & Type2Collection sind tatsächlich EntityCollection dieser 2 Einheiten
.
können Sie zwei Beispieltypdefinitionen in Ques einschließen – Simon