Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk mengendalikan lajur CSV yang mengandungi koma tertanam di C#?

Bagaimana untuk mengendalikan lajur CSV yang mengandungi koma tertanam di C#?

Linda Hamilton
Lepaskan: 2025-01-26 17:01:11
asal
558 orang telah melayarinya

How to Handle CSV Columns Containing Embedded Commas in C#?

Mengendalikan lajur CSV yang mengandungi koma terbenam dalam C#

Apabila membahagikan fail CSV, anda mungkin menemui lajur yang mengandungi koma, seperti alamat atau perihalan terbenam. Walaupun kaedah pemisahan pembatas tradisional mungkin gagal dalam kes ini, terdapat beberapa penyelesaian teguh tersedia dalam C#.

Salah satu cara ialah menggunakan kelas Microsoft.VisualBasic.FileIO.TextFieldParser. Kelas ini mengendalikan menghurai fail teks yang dibataskan, membenarkan pengendalian khusus bagi medan yang disebut.

Pertimbangkan contoh CSV berikut dengan koma terbenam dalam lajur alamat:

<code>"2,1016,7/31/2008 14:22,Geoff Dalgas,6/5/2011 22:21,http://stackoverflow.com,\"Corvallis, OR\",7679,351,81,b437f461b3fd27387c5d8ab47a293d35,34"</code>
Salin selepas log masuk

Untuk menghuraikan CSV ini menggunakan TextFieldParser anda boleh mengikuti contoh kod berikut:

<code class="language-csharp">using Microsoft.VisualBasic.FileIO;

TextFieldParser parser = new TextFieldParser(new StringReader(csv));
parser.HasFieldsEnclosedInQuotes = true;
parser.SetDelimiters(",");

string[] fields;

while (!parser.EndOfData)
{
    fields = parser.ReadFields();
    foreach (string field in fields)
    {
        Console.WriteLine(field);
    }
}

parser.Close();</code>
Salin selepas log masuk

Dengan menetapkan HasFieldsEnclosedInQuotes kepada true, TextFieldParser akan mengendalikan medan petikan secara berbeza, menghalang koma di dalamnya daripada dianggap sebagai pembatas.

Output akhir akan membahagikan CSV ke dalam medan individunya dengan betul, mengekalkan koma terbenam dalam alamat "Corvallis, OR":

<code>"2"
"1016"
"7/31/2008 14:22"
"Geoff Dalgas"
"6/5/2011 22:21"
"http://stackoverflow.com"
"Corvallis, OR"
"7679"
"351"
"81"
"b437f461b3fd27387c5d8ab47a293d35"
"34"</code>
Salin selepas log masuk

Dengan memanfaatkan kelas TextFieldParser, anda boleh mengendalikan lajur CSV yang mengandungi koma terbenam dengan cekap, memastikan tafsiran dan manipulasi data yang tepat.

Atas ialah kandungan terperinci Bagaimana untuk mengendalikan lajur CSV yang mengandungi koma tertanam di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan