C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Method: We introduce the ConvertListToDataTable method, which converts a List<string[]> to a DataTable.
ArrayHere: We create a new empty DataTable. Next, we find the maximum number of columns that will be required by looping through the input List.
Then: We add those columns, and then add all the rows. We return the DataTable.
C# program that converts List to DataTable for DataGridView
using System;
using System.Collections.Generic;
using System.Data;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// Example list.
List<string[]> list = new List<string[]>();
list.Add(new string[] { "Column 1", "Column 2", "Column 3" });
list.Add(new string[] { "Row 2", "Row 2" });
list.Add(new string[] { "Row 3" });
// Convert to DataTable.
DataTable table = ConvertListToDataTable(list);
dataGridView1.DataSource = table;
}
static DataTable ConvertListToDataTable(List<string[]> list)
{
// New table.
DataTable table = new DataTable();
// Get max columns.
int columns = 0;
foreach (var array in list)
{
if (array.Length > columns)
{
columns = array.Length;
}
}
// Add columns.
for (int i = 0; i < columns; i++)
{
table.Columns.Add();
}
// Add rows.
foreach (var array in list)
{
table.Rows.Add(array);
}
return table;
}
}
}
Note: The DataSource provides the best performance for displaying large amounts of data instantly in a DataGridView.
Warning: If you were to add Columns and Rows individually, slowdowns are more likely to occur.
However: This is often much slower, and more processor-intensive, than in-memory operations.
So: When using DataGridView or similar controls, processing the data first seems like it might be slower, but it ends up much faster.
DataGridView