Преобразовать DataGridViewRow в строку - PullRequest
1 голос
/ 26 декабря 2010

У меня есть DataGridViewRow, и я хочу преобразовать его в строку в формате, указанном ниже:

cell[0].ToString()+"\t"+cell[1].Tostring()+"\t"+...+cell[n].ToString()

На самом деле мне нужна строка, в которой строковые значения каждой ячейки DataGridViewRow и \t между ними.

Какой самый лучший чистый и читаемый способ? Является ли использование цикла и проверка состояния единственным способом? первое решение - добавить каждую ячейку с \t во временную строку, а затем удалить последний символ временной строки.

Ответы [ 3 ]

2 голосов
/ 26 декабря 2010

Когда бы ни возникали петли, LINQ приходит на помощь.

string.Join("\t", cell.Select(c => c.ToString()).ToArray())
1 голос
/ 26 декабря 2010

Вы можете расширить класс DataGridViewRow:

    public static string Format(this DataGridViewRow row, string separator)
    {
        string[] values = new string[row.Cells.Count];
        for (int i = 0; i < row.Cells.Count; i++)
            values[i] = row.Cells[i].Value + "";
        return string.Join(separator, values);
    }

Тогда:

string msg = row.Format("\t");
0 голосов
/ 26 декабря 2010
string output = row.Cells.Aggregate("", (a, current) => a + current + "\t");
...