我已经编写了一个方法,使用来自NuGet的FastMember将通用列表转换为DataTable。使用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的最佳过载方法匹配有一些无效的参数”。
有没有办法将对象列表作为参数传递给对象,而无需定义对象的确切类型?
也许你可以使用[泛型](HTTP:// MSDN。 microsoft.com/en-us/library/ms379564%28v=vs.80%29.aspx) – LuigiEdlCarno