私は2つのクラスを持ち、そのうちの1つは他のクラスから派生しています。コピーリスト<BaseList>リストへのオーバーライドプロパティ付きの<DerivedList> 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" });
それは(私がforeach
句を使用せずに意味)リスト内のすべてのオブジェクトを列挙することなく、DerivedClass
のリストにBaseClass
のリストをコピーすることは可能ですか?
オブジェクトを作成するためのコードをいくつか追加しました。
"リスト内のすべてのオブジェクトを列挙せずに?" - いいえ – HimBromBeere
あなたのリストには 'BaseClass'のインスタンスしかありません。それらを 'DerivedClass'にキャストしようとすると、' DerivedClass'のインスタンスではないので失敗します。 – Kyle