Hello有没有办法从datagridview中的整行创建逗号分隔的字符串。
目前我一直在做的事情是这样的:
for(int y = 0; y < datagridview1.Rows.Count; y++)
{
List<string> List = new List<string>();
for(int x = 0; x < datagridview1.Columns.Count; x++)
{
List.Add(datagridview.Row[y].Cells[x].Value.ToString());
//here i write it to a file doing something like string.Join(",",List)
}
}
有没有办法使用LINQ,还是有办法可以将它浓缩成一个班轮?
答案 0 :(得分:0)
您可以使用Enumerable.Range
模拟整数上的for
循环:
var res = Enumerable.Range(0, datagridview1.Rows.Count)
.Select(y => Enumerable.Range(0, datagridview1.Columns.Count)
.Select(x => datagridview.Row[y].Cells[x].Value.ToString())
.ToList()
).ToList();
答案 1 :(得分:0)
行和单元格集合都是可枚举的,因此您可以在这里更好地使用LINQ。您不需要为行和列编制索引,只需对它们进行枚举。
var data =
(from DataGridViewRow r in dataGridView.Rows
select String.Join(",",
from DataGridViewCell c in r.Cells
select c.Value
)).ToList();