Member 13458399 Ответов: 1

Как извлечь столбцы из csv-файла с чтением другого столбца В C#?


У меня есть такой csv-файл.

2;пластинки;2451;1166.95410292072
2;пластинки;1389.5966620306;788.205841446453
2;пластинки;1320.50069541029;767.732962447844
2;пластинки;1356.32823365786;754.937413073714
2;пластинки;1625.0347705146;839.388038942976
2;пластинки;2205.95271210014;1000.61196105702
2;пластинки;2451;1056.9123783032
3;SmallPatchesmosaicpavement;2354.38108484006;977.579972183588
3;SmallPatchesmosaicpavement;2451;1000.61196105702
3;SmallPatchesmosaicpavement;2451;1064.58970792768
3;SmallPatchesmosaicpavement;1988.42837273992;946.870653685675
3;SmallPatchesmosaicpavement;1394.71488178025;780.528511821975
3;SmallPatchesmosaicpavement;1404.95132127956;770.29207232267
3;SmallPatchesmosaicpavement;2065.2016689847;913.602225312935
4;гравий;2165.00695410292;1062.03059805285
4;гравий;2141.97496522949;1064.58970792768
4;гравий;2121.50208623088;1067.1488178025
4;гравий;2106.14742698192;1067.1488178025
4;гравий;2090.79276773296;1067.1488178025
4;гравий;2075.43810848401;1069.70792767733
4;гравий;2060.08344923505;1072.26703755216
4;гравий;2039.61057023644;1074.82614742698
4;гравий;2016.578581363;1079.94436717663
4;гравий;1988.42837273992;1082.50347705146
4;гравий;1955.15994436718;1085.06258692629
4;гравий;1824.64534075104;1015.96662030598
4;гравий;1916.77329624478;1003.17107093185
4;гравий;1983.31015299026;1000.61196105702

что касается первого столбца, то я хочу напечатать значения 3-го и 4-го столбцов.
например, когда значение первого столбца равно 2, до тех пор все значения 3-го и 4-го будут печататься?

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

Диалоговое окно openfiledialog ОПН = новое диалоговое окно openfiledialog();

if (opn.ShowDialog() == DialogResult.ОК)
{
StreamReader sr = новый StreamReader(opn.FileName);

List<string[]> data = новый список<string[]>();

int Row = 0;

хотя (!СР.EndOfStream)
{
строка [строка] = СР.С readline().Сплит(',');
данных.Добавить(Строка);
Ряд++;
Приставка.Строку(Строки);
}


}

1 Ответов

Рейтинг:
0

Richard MacCutchan

Это ваш третий вопрос на ту же тему, и вы все еще, кажется, не понимаете формат ваших данных. Ваш string[] Line = sr.ReadLine().Split(','); это не сработает, потому что ваши данные используют точку с запятой (';') символ в качестве разделителя полей, а не запятая. Я бы посоветовал вам учиться Использование OleDb для импорта текстовых файлов (tab, CSV, custom)[^] что значительно упростит дело.