Ich habe zwei Klassen, eine davon ist von anderen abgeleitet.Liste kopieren <BaseList> zu Liste <DerivedList> mit überschreiben Eigenschaften C#
public class BaseClass
{
private int iD;
private string name;
private int typeID;
public int ID { get => iD; set => iD = value; }
public string Name { get => name; set => name = value; }
public virtual int TypeID { get => typeID; set => typeID = value; }
}
public class DerivedClass : BaseClass
{
private int typeID;
private string typeName;
private Types types; // This is a list of some other objects to lookup;
public DerivedClass(Types types)
{
this.types = types;
}
public override int TypeID
{
get => typeID;
set
{
typeID = value;
typeName = types.Where(o => o.ID == value).FirstOrDefault().Name;
}
}
public string TypeName { get => typeName; }
}
public class Type
{
public int ID;
public string Name;
}
public class Types : List<Type> { };
List<BaseClass> baseClassList = new List<BaseClass>();
baseClassList.Add(new BaseClass() {ID = 1, Name = "aaa", TypeID = 1});
baseClassList.Add(new BaseClass() { ID = 2, Name = "bbb", TypeID = 1 });
Types typeList = new Types();
typeList.Add(new Type() { ID = 1, Name = "LookupName" });
Ist es möglich Liste der BaseClass
kopieren zur Liste DerivedClass
ohne alle Objekte in der Liste aufzählt (ich meine, ohne foreach
Klausel)?
Code zum Erstellen von Objekten hinzugefügt.
"? Ohne alle Objekte in der Liste aufzählt" - no – HimBromBeere
Ihre Liste enthält nur Instanzen von 'BaseClass'. Der Versuch, diese auf "DerivedClass" zu übertragen, schlägt fehl, weil sie keine Instanzen von "DerivedClass" sind. – Kyle