特定のクラスの新しいリストをインスタンス化するときに、どうにかしてパラメーターをリストに渡したいと思います。
より具体的には、次のようなことをしたいと思います。
List<FirstClass>(dataTable);
List<SecondClass>(dataTable);
コードの最初の行が呼び出された場合、コンストラクターは、後者が呼び出された場合よりも特定の方法で dataTable を処理します (FirstClass には異なるフィールドがあります)。
私が試したこと
namespace DeeMacsNamespace
{
public class FirstClass
{
public String Title { get; set; }
public String Url { get; set; }
}
public class FirstClass : List<FirstClass>
{
public FirstClass(DataTable table)
{
foreach (DataRow row in table.Rows)
{
this.Add(new FirstClass()
{
Title = (String)row["Title"]
});
}
}
}
}
上記がうまくいくと思います(または少なくとも望んでいます)。DataTable
しかし、特定のクラスの別のリストの非常によく似たコンストラクターから読み取るこのコードを最も効率的に再利用するにはどうすればよいでしょうか? FirstClass
また、コンストラクターがorSecondClass
型からのものかどうかを確認する条件文を組み込むにはどうすればよいでしょうか? SecondClass の同様のコンストラクターでこれを書き直すことは避けたいと思います。