List<T>
parametresinin columnValues
parametresi için iletilebileceği şekilde, aşağıdaki yöntemi daha genel bir şekilde yapmaya çalışan bir beyin osuruğu yaşıyorum.Bu uzantı yöntemini nasıl daha genel yapabilirim?
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;
}
Ben yöntemine geçirmeden önce orijinal listeyi bir List<object>
olarak değiştirin ve dönüştürmek olabilir ama ben
Düzenleme :-) daha iyi bir seçenek olduğuna eminim: İşte ne var :
Frank'in gönderisi bunu tekrar düşünmemi sağladı. Çoğu durumda, List<T>
kaynağı, List<object>
olacaktır, çünkü sütun değerleri büyük olasılıkla farklı türlerdir.
İlk kullanımım için List<string>
anlamlıdır, çünkü bu noktada tüm metin olan bir CSV ayrıştırmasından veri kümesi oluşturuyordum.
Lol noktanız çok iyi ve bunu düşünmemiştim. İlk kullanımım için bir Liste anlamlıdır, çünkü bu noktada tüm metin olan bir CSV ayrıştırmasından veri kümesi oluşturuyordum. Diğer birçok kullanım için, bu, sütun değerleri büyük olasılıkla farklı türler olacağından anlam ifade etmez. –