Tak jak w temacie - mam problem z dodaniem komórek wiersza datagridview do listy... Oto kod:

 
        private void button2_Click(object sender, EventArgs e)
        {
            List<string> tabLinia = new List<string>();
            string line;
            using (StreamWriter sw = new StreamWriter("cennik.txt"))
            {                
                for (int i=0; i<dataGridView1.Rows.Count; i++)
                {
                    for (int c = 0; c < dataGridView1.Columns.Count; c++)
                    { 
                    tabLinia.Add(dataGridView1[c,i].Value.ToString());
                    }
                    line = String.Join("|",tabLinia);
                    sw.WriteLine(line);
                }

            }
        }

Mając dwa wiersze w datagridview(wiersz pierwszy-a b a a v, drugi-2 3 4 5 6 ), do pliku zapisuje się to w następujący sposób:
a|b|a|a|v
a|b|a|a|v|2|3|4|5|6

Udało mi się znaleźć błąd, brakowało wyczyszczenia listy... ;) Poprawiony kod:

 
        private void button2_Click(object sender, EventArgs e)
        {
            List<string> tabLinia = new List<string>();
            string line;
            using (StreamWriter sw = new StreamWriter("cennik.txt"))
            {                
                for (int i=0; i<dataGridView1.Rows.Count; i++)
                {
                    tabLinia.Clear(); // <= tu był pies pogrzebany... :)
                    for (int c = 0; c < dataGridView1.Columns.Count; c++)
                    { 
                    tabLinia.Add(dataGridView1[c,i].Value.ToString());
                    }
                    line = String.Join("|",tabLinia);
                    sw.WriteLine(line);
                }

            }
        }

Nie usuwałem tematu, bo może komuś się przyda... :P