gpt4 book ai didi

c# - 如何将 dataGridView 中的整列值传递给方法?

转载 作者:行者123 更新时间:2023-11-30 16:17:37 24 4
gpt4 key购买 nike

我有一个包含经度和纬度值的 dataGridView。

我需要通过将值传递给 DoSomethingMethod() 来使用该值.

我不熟悉 dataGridView,因此我从 dataGridView 复制所有值并使用 List<> 处理它

下面是我在dataGridView中操作数据的代码

Public Main()
{
List<double> lst_Long = new List<double>();
List<double> lst_Latt = new List<double>();

for (int rows = 0; rows < dataGridView1.Rows.Count; rows++)
{
lst_Long.Add(Convert.ToDouble(dataGridView1.Rows[rows].Cells["Long"].Value));
lst_Latt.Add(Convert.ToDouble(dataGridView1.Rows[rows].Cells["Latt"].Value));
}

int ColumnCount = lst_Long.Count - 1;
int RowCount = lst_Row.Count - 1;

//Pass the list to DoSomethingMethod
DoSomethingMethod(lst_Long , lst_Latt, ColumnCount, RowCount);
}

DoSomethingMethod(List<double> lst_long, List<double> lst_latt, int ColumnCount, int RowCount)
{
for (int iColumn = 0; iColumn < ColumnCount; iColumn++)
{
for (int iRow = 0; iRow < RowCount; iRow++)
{
// access my latitude value and longitude value here
double myX = lst_latt[iRow]
double myY = lst_long[iRow]

// do some processing here with the value, lets say....
double myNewX = myX + 10;
double myNewY = myY + 10;

PassNewDataToAnotherMethod( myNewX , myNewY );
}

}
}

请问有没有其他方法可以直接使用Columns["Long"]处的dataGridView获取单元格值和 Columns["Latt"]并在不将 dataGridView 中的值复制到列表中的情况下做类似的事情?

谢谢~

更新:下面是我的DGV表(数据是随机的,不是真实的)

enter image description here

更新我自己的答案,这个问题将关闭

// Pass the whole dataGridView1 into method and access the value through row count.
DoSomethingMethod(DataGridView dataGridView1)
{
for (int rows = 0; rows < dataGridView1.Rows.Count; rows++)
{
double myX = Convert.ToDouble(dataGridView1.Rows[rows].Cells["Latt"].Value);
double myY = Convert.ToDouble(dataGridView1.Rows[rows].Cells["Long"].Value);
}
}

最佳答案

(我想到的)一种方法是将 BindingSource 与自定义模型一起使用,因此您可以对数据绑定(bind)模型进行操作,而不是对行进行操作。类似的东西:

public class Location
{
public double Latitude { get; set; }
public double Longitude { get; set; }
}

//绑定(bind)网格

var bs = new BindingSource();
bs.DataSource = listOfLocations; // List<Location>
dataGridView1.DataSource = bs; // thanks to binding source all changes in datagrid are
// propagated to underlying data source (ie. List<Location>

然后您可以只对 listOfLocations 进行操作,而无需自己访问单元格中的值。

关于c# - 如何将 dataGridView 中的整列值传递给方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16911200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com