У меня есть два DataTable
с одной и той же схеме:C# DataTable: ImportRow (DataRow) против Rows.Add (DataRow.ItemArray)
DataTable t1 = new DataTable();
DataTable t2 = t1.Clone();
Если я хочу, чтобы добавить новый DataRow
к t1
:
DataRow row=t1.NewRow();
t1.Rows.Add(t1);
я не могу использовать t1.ImportRow(row);
так как после был создан, row
находится в отдельном состоянии, и, следовательно, он будет проигнорирован методом ImportRow
(см Microsoft documentation).
Теперь я хочу, чтобы скопировать row
в t2
: Я знаю, что DataRow
объект может содержаться только в одном DataTable
, поэтому нужно создать копию, чтобы сделать его можно использовать два метода:
t1.Rows.Add(row.ItemArray);
или
t1.ImportRow(row);
Мой вопрос заключается в следующем: t1.Rows.Add(row.ItemArray);
и t1.ImportRow(row);
эквивалент? Правильно ли все мои предположения?
Что значит «не эквивалентно технически»? Имеют ли они разные побочные эффекты или результаты? – WoDoSc
@WoDoSc у них на самом деле есть другой код, метод импорта выполняет дополнительные проверки и т. Д. Http://referencesource.microsoft.com/#System.Data/System/Data/DataTable.cs,2954 http://referencesource.microsoft.com /#System.Data/System/Data/DataTable.cs,2539 – xumix