System.Data.DataTable から派生したクラスを定義したいと思います。
このクラスにはPopulateColumns
、ご想像のとおり、DataTable に入力するメソッドがあります。このメソッドで、データ テーブル列に任意の数のカスタム データ型を動的に入力できるようにしたいと考えています。(明確にするために、以下のコードを参照してください)Dictionary<strin,Type>
すべてのパラメーターを1つずつ渡す代わりに、を使用してみました:
public void Populate(Dictionary<string, Type> dic)
{
foreach (var item in dic)
this.Columns.Add(item.Key, item.Value);
}
そしてそれを呼び出します:
var testDt = new TestDataTable();
Dictionary<string, Type> dicCols = new Dictionary<string, Type>();
dicCols.Add("Index", System.Type.GetType("System.Int32"));
dicCols.Add("Title", System.Type.GetType("System.String"));
testDt.Populate(dicCols);
これはうまくいきます。ただし、同じ列を 2 つ受け入れることはできません (列名はディクショナリのキーであるため)。
同じ名前の 2 つの列を渡す必要がないことはわかっています。しかし、それを行うためのより良い方法があるかどうかに興味があります。