C# 如何以编程方式将选定单元格数据移动到DataGrid中的数组

C# 如何以编程方式将选定单元格数据移动到DataGrid中的数组,c#,datagrid,C#,Datagrid,下面是将所有数据从datagrid移动到阵列的代码。但我只想将选定的数据移动到此阵列。可通过鼠标进行选择 public List<double[]> ExtractGridData(DataGridView grid) { int numCols = grid.Columns.Count; List<double[]> list = new List<double[]>(); foreach (DataG

下面是将所有数据从datagrid移动到阵列的代码。但我只想将选定的数据移动到此阵列。可通过鼠标进行选择

public List<double[]> ExtractGridData(DataGridView grid)
    {
        int numCols = grid.Columns.Count;
        List<double[]> list = new List<double[]>();
        foreach (DataGridViewRow row in grid.Rows)
        {
            if (row.IsNewRow) // skip the new row
                continue;
            double[] cellsData = new double[numCols];
            foreach (DataGridViewCell cell in row.Cells)
                if (cell.Value != null)
                    cellsData[cell.ColumnIndex] = Convert.ToDouble(cell.Value);
            list.Add(cellsData);
        }

        return list;
    }
public List ExtractGridData(DataGridView网格)
{
int numcolls=grid.Columns.Count;
列表=新列表();
foreach(grid.Rows中的DataGridViewRow行)
{
if(row.IsNewRow)//跳过新行
继续;
double[]cellsData=新的double[numCols];
foreach(row.Cells中的DataGridViewCell单元格)
if(cell.Value!=null)
cellsData[cell.ColumnIndex]=Convert.ToDouble(cell.Value);
列表。添加(cellsData);
}
退货清单;
}
使用而不是
网格.行

如果设置为
CellSelect
,并且需要单个单元格值,也可以使用:

List<double> cellsData = new List<double>();
foreach (DataGridViewCell cell in grid.SelectedCells)
{
    if( cell.Value != null)
        cellsData.Add(Convert.ToDouble(cell.Value));
}
List cellsData=new List();
foreach(网格中的DataGridViewCell单元格。SelectedCells)
{
if(cell.Value!=null)
cellsData.Add(Convert.ToDouble(cell.Value));
}

如何将SelectionMode设置为CellSelect?@user2049436“不工作”是什么意思?到底发生了什么事?在设计模式下,选择网格,打开
Porperties
窗口(按
F4
),将
SelectionMode
更改为
CellSelect
。或在代码中:
grid.SelectionMode=DataGridViewSelectionMode.CellSelect。即使选择了行,我也会遇到异常。在代码中,“cellsData在当前上下文中不存在”是错误。@user2049436请仔细查看答案中的代码
cellsData
由我定义,位于
foreach
循环前面的一行。例外情况是什么?请阅读一些书籍,学习如何真正用C#和Winforms编程。