Member 12608010 Ответов: 1

Как скопировать все содержимое csv-файла, включая заголовки столбцов, и заменить значения каждого столбца разными алфавитами


Я могу отображать значения, но не могу прочитать заголовки столбцов, а затем заменить все 1 в столбце алфавитом a

мой csv выглядит так:
c1 c2 c3
0  1  0
1  0  1
1  0  0
0  1  0
1  0  0   


теперь мой массив имеет только
0  1  0
1  0  1
1  0  0
0  1  0
1  0  0  

без заголовков столбцов и я пытаюсь отобразить свой выход как
c1 c2 c3
0  b  0
a  0  c
a  0  0
0  b  0
a  0  0


Что я уже пробовал:

вот мой код:
List<string> lines = new List<string>();
 using (StreamReader r = new StreamReader(File.OpenRead(@"d/as.csv")))
            {
               
                string line;
                while ((line = r.ReadLine()) != null)
                {
                   lines.Add(line);
                }
            }
            string[] Sensor_Array = lines.ToArray();
            
           
            foreach (var s in Sensor_Array)
            {
                Console.WriteLine(s.ToString());
            }
            Console.ReadLine();

ZurdoDev

Я не понимаю, где вы застряли. У вас есть код для чтения в каждой строке, по одной за раз. Итак, просто делайте все, что вам нужно, после того как вы прочитаете каждую строчку.

Member 12608010

мне нужно читать заголовки столбцов, чтобы различать каждый столбец

ZurdoDev

1. ответьте на комментарий, чтобы мы были уведомлены.
2. Заголовки столбцов будут вашей первой линии. Итак, первая строка, которую Вы читаете, - делайте то, что вам нужно. Опять же, я не знаю, о чем вы просите.

Patrice T

Чтобы ответить на комментарий, используйте кнопку "ответить" поверх комментария.

[no name]

string[] lines = файл.ReadAllLines(@"d:\as.csv");
строки[0] - это заголовок столбца

Member 12608010

да спасибо за это то что я искал это могу ли я отобразить весь столбец отдельно с их соответствующими заголовками столбцов

Member 12608010

по каждому элементу (ВАР продукт в линии)
{
товар.С1 = товар.С1.Метод Equals("1") ? "а" : пункт.С1;
товар.С2 = товар.С2.Метод Equals("1") ? "б" : пункт.С2;
товар.С3 = товар.С3.Метод Equals("1") ? "с" : пункт.С3;
товар.С4 = товар.С4.Метод Equals("1") ? "Д" : пункт.С4;
}
я пытаюсь сделать это выше, но элемент в списке не идентифицирует c1, c2, которые являются заголовками столбцов

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

[no name]

lines - это строковый массив. если вы хотите сделать что-то вроде item.c1 item.c2, то вы должны написать свой собственный код.

1 Ответов

Рейтинг:
0

Member 12599256

var lines = File.ReadAllLines(@"d:\as.csv");
for (var i = 1; i < lines.Length; i++)
{
  var lineSplit = lines[i].Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
  lineSplit[0] = lineSplit[0].Equals("1") ? "a" : lineSplit[0];
  lineSplit[1] = lineSplit[1].Equals("1") ? "b" : lineSplit[1];
  lineSplit[2] = lineSplit[2].Equals("1") ? "c" : lineSplit[2];
}


Member 12608010

Спасибо за вашу помощь, он по-прежнему отображает все строки в консоли с 1 и 0 и не заменяет их алфавитами