Mam pierdnięcie w mózgu próbujące uczynić następującą metodę bardziej ogólną, tak aby każdy List<T>
mógł zostać przekazany dla parametru columnValues
. Oto co mam:Jak mogę uczynić tę metodę rozszerzenia bardziej ogólną?
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;
}
mogę zmienić go na List<object>
i przekształcić pierwotną listę przed przekazaniem go do metody, ale jestem pewien, że jest lepszym rozwiązaniem :-)
Edycja :
Post Frank zmusił mnie do ponownego przemyślenia tego. W większości przypadków źródłem List<T>
będzie List<object>
, ponieważ wartości kolumn będą najprawdopodobniej różnymi typami.
Dla mojego początkowego zastosowania sensownie brzmiał List<string>
, ponieważ tworzyłem zbiór danych ze scenariusza CSV, który jest cały tekst w tym punkcie.
Lol jesteś punkt jest doskonały i nie brałem pod uwagę. Dla mojego pierwszego użycia lista miała sens, ponieważ tworzyłem zbiór danych z analizy CSV, która jest w tym momencie całym tekstem. W przypadku większości innych zastosowań nie ma to sensu, ponieważ wartości kolumn najprawdopodobniej będą różne. –