LINQ Datagridview以逗号分隔的字符串

时间:2016-08-07 23:17:16

标签: c# linq

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,还是有办法可以将它浓缩成一个班轮?

2 个答案:

答案 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();