Я не уверен на 100%, почему вы хотите скопировать данные в массив перед тем, как поместить их в VendorInvoiceTable, но в любом случае:
IEnumerable<DataRow> query = from vendInv in VendorInvoiceStagingTable.AsEnumerable()
where vendInv.Field<string>(VendInvoice.Number) == InvoiceHeader
select vendInv;
// Would this be ok?
VendorInvoiceTable.Rows.Add(query.First().ItemArray);
// ...or if not, how about this?
object[] sourceData = query.First().ItemArray;
object[] targetData = new object[sourceData.Length];
sourceData.CopyTo(targetData, 0);
VendorInvoiceTable.Rows.Add(targetData);