Estoy teniendo un error mental al intentar hacer que el siguiente método sea más genérico, de modo que cualquier List<T>
se puede pasar para el parámetro columnValues
. Aquí es lo que tengo:¿Cómo puedo hacer que este método de extensión sea más genérico?
public static DataRow NewRow(this DataTable dataTable, List<string> columnValues)
{
DataRow returnValue = dataTable.NewRow();
while (columnValues.Count > returnValue.Table.Columns.Count)
{
returnValue.Table.Columns.Add();
}
returnValue.ItemArray = columnValues.ToArray();
return returnValue;
}
que podría cambiar a un List<object>
y convertir la lista original antes de pasarlo al método, pero estoy seguro de que hay una mejor opción :-)
Editar :
La publicación de Frank me hizo replantear esto. En la mayoría de los casos, la fuente List<T>
sería List<object>
, ya que los valores de las columnas probablemente sean de tipos diferentes.
Para mi uso inicial, un List<string>
tiene sentido porque estaba creando un conjunto de datos de un análisis CSV que es todo el texto en ese punto.
Lol eres punto es excelente y no lo había considerado. Para mi uso inicial, una lista tenía sentido porque estaba creando un conjunto de datos de un análisis CSV, que es todo el texto en ese punto. Para la mayoría de los otros usos, esto no tendría sentido, ya que los valores de columna probablemente sean tipos diferentes. –