DataRow オブジェクトからオブジェクトを作成したいのですが、Datarow オブジェクトをトラバースすることで作成できます。ただし、ここでの制約は DataRow 列が固定されていないことです。DataRow が持つことができる列の数には変動がある可能性があります。すべての列がデータ行になるかわからないため、ColumnName に従って DataRow をトラバースできません。
たとえば、私はクラスを持っています
class Abc
{
string attrib1;
string attrib2;
string attrib2;
public Abc(DataRow dr)
{
attrib1 = dr["attrib1"].ToString();
attrib2 = dr["attrib2"].ToString();
attrib3 = dr["attrib3"].ToString();
}
}
これは、DataRow オブジェクトに 3 つの列すべてがある場合に正常に機能します。しかし、そうでない場合、これは例外をスローします
私を助けてください。
次のようにコンストラクターでスイッチケースを使用してみました
class Abc
{
string attrib1;
string attrib2;
string attrib2;
public Abc(DataRow dr)
{
foreach (System.Data.DataColumn dc in record.Columns)
{
switch (dc.ColumnName)
{
case "attrib1" :
attrib1 = dr["attrib1"].ToString();
break;
case "attrib2" :
attrib2 = dr["attrib2"].ToString();
break;
case "attrib2" :
attrib3 = dr["attrib3"].ToString();
break;
}
}
}
}
正常に動作していますが、このアプローチが問題ないかどうかを知りたいです。
この問題を解決するのを手伝ってください
ありがとうございました