Я хотел бы определить класс, производный от System.Data.DataTable.
В этом классе есть метод PopulateColumns
, который, как вы можете догадаться, заполняет DataTable.Я хочу, чтобы этот метод мог динамически заполнять столбцы данных с любым числом пользовательских типов данных.(См. Мой код ниже для пояснения) Я попытался использовать Dictionary<strin,Type>
вместо передачи всех параметров один за другим:
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);
Это работает нормально,но он не может принимать два столбца с одинаковыми значениями (поскольку имена столбцов являются ключами в словаре).
Я знаю, что мне не нужно передавать два столбца с одинаковыми именами.Но мне просто любопытно, есть ли лучший способ сделать это.