我有一个DataGridView dgv1
,我将一次填充一行。
每次创建一行时,创建的行都将存储在List或Array中。
private void dgvScanLogs_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
//List<string> sqlLog = dgvScanLogs.Rows[dgvScanLogs.Rows.Count - 1];
//List<string> LogList = dgvScanLogs.Rows
// .OfType<DataGridViewRow>()
// .Select(r => r.Cells[0].Value.ToString())
// .ToList();
}
我有一些代码,但似乎无法正确使用。
我所做的是将第一列列入清单,但我需要最后一行。
如何将最后/新行存储到Array
或List
?
答案 0 :(得分:1)
首先,在方法范围内声明的任何变量在执行后将 丢失 ,在您的程序中就是这种情况。
我认为,您希望存储每个添加的行第一个 Cell
值。
将LogList
定义为类变量。
List<string> LogList = new List<string>();
每次添加新行时都会触发 RowsAdded
事件,因此每次调用此事件时都需要更新列表。
void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
LogList.Add(row[0].ToString());
}
答案 1 :(得分:0)
不太确定你想要什么。您似乎正在尝试将最后一行添加到本地定义的List
,一旦您的RowsAdded
处理程序返回,它就会超出范围,但无论如何:
List<string> sqlLog = new List<string>();
sqlLog.Add(dgvScanLogs.Rows[dgvScanLogs.Rows.Count - 1].ToString());
您需要先创建List
,然后才能添加Item[Int32]
。 DataGridViewRowCollection
上的.setSparkHome("C:/tmp/spark-1.6.0-bin-hadoop2.6")
方法无法返回列表,因此您需要将其添加到现有列表中。