You can use an object that converts a DataRow to your type:
public interface IDataRowConverter<T> { T Convert(DataRow row); }
Provide your custom converter for your function:
public static T[] ConvertToArray<T>(DataTable dataTable, IDataRowConverter<T> converter) { List<T> result = new List<T>(); foreach (DataRow dataRow in dataTable.Rows) result.Add(converter.Convert(dataRow)); return result.ToArray(); }
Then we implement the interface for the type you need:
public class MyObjectDataRowConverter : IDataRowConverter<MyObject> { public MyObject Convert(DataRow row) { MyObject myObject = new MyObject();
Then you can call your function with this code:
MyObject[] objectArray = ConvertToArray<MyObject>(datatable, new MyObjectDataRowConverter());
source share