Да, есть много способов добавить два экземпляра ArrayList в один экземпляр DataTable. Вот один из способов, который показывает, как добавить любое количество ArrayLists в один DataTable, используя полный пример кода, скомпилированный в .NET Framework 2.0.
Примечание : Другие люди делают хорошую работу, пытаясь расшифровать ваши замыслы - я просто собираюсь ответить на вопрос напрямую с помощью полного фрагмента кода на случай, если вы сможете получить какие-либо идеи от это для себя.
Это действительно не сложный ответ - он просто устанавливает сначала пару экземпляров ArrayList с примерами данных, относящихся к вашему вопросу, и в конце предоставляет фрагмент для проверки решения.
Пожалуйста, прокомментируйте, какие идеи вы найдете здесь, если таковые имеются. Спасибо.
namespace Com.StackOverflow {
using System.Diagnostics;
using System.Data;
using System.Collections;
public static class SOQuestion__Add_two_arraylists_in_a_datatable {
public static void AnswerQuestionDirectly() {
// - - - - - - - - Prelimary setup to question - - - - - - - -
// Sample list of filenames (3 elements in total).
ArrayList listFilenames = new ArrayList( new[] {@"C:\a.dat", @"C:\b.dat", @"C:\c.dat"} );
// Sample list of error counts (2 elements in total).
ArrayList listFailureCounts = new ArrayList( new[] {88,51} );
// - - - - - - A Direct answer to the question - - - - - - -
// Create DataTable structure with one column.
DataTable dTable = new DataTable();
dTable.Columns.Add("Column 1");
/* Populate DataTable with all lists at once.
* Note: keep appending
* to { array initialization list } all lists you want included
* in the DataTable instance.
*/
foreach (ArrayList currentList in new[] { listFilenames, listFailureCounts }) {
foreach (object element in currentList)
dTable.Rows.Add(new[] { element }); // one column per row
}
// - - - - - - - - Test it for expected counts - - - - - - - -
int totalExpected = listFilenames.Count + listFailureCounts.Count;
//Verify DataTable contains the same amount of rows.
Debug.Assert(dTable.Rows.Count == totalExpected);
}
}
}
Приведенный выше ответ можно скопировать и вставить в файл .cs и запустить со следующим кодом: using Com.StackOverflow;
.
SOQuestion__Add_two_arraylists_in_a_datatable.AnswerQuestionDirectly();