【发布时间】:2013-08-01 09:24:14
【问题描述】:
我编写了一个方法,该方法使用来自 NuGet 的 FastMember 将通用列表转换为 DataTable。
这是我的代码:
public DataTable ConvertGenericListToDataTable(List<CustomObject> inputList)
{
var dt = new DataTable();
using (var reader = ObjectReader.Create(inputList))
{
dt.Load(reader);
}
return dt;
}
var customObject = new List<CustomObject>();
var dt = ListToDataTable.ConvertGenericListToDataTable(customObject);
效果很好。
Customobject 是我创建的自定义对象,我有几个不同的列表要传递给我的方法:List<CustomobjectA> 或List<CustomobjectB> 等等。
为我想要转换为 DataTable 的每种类型的列表编写方法并不是什么大问题,但这可能会导致一遍又一遍地重复相同的代码行,这显然是我想要防止的事情
我尝试将参数的类型更改为List<object> 和List<dynamic>。
然后我的代码将无法编译,因为:“ConvertGenericListToDataTable 的最佳重载方法匹配有一些无效参数”。
有没有一种方法可以将对象列表作为参数传递而无需定义对象的确切类型?
【问题讨论】:
-
也许你可以使用generics
标签: c#