C# リストからの抽出

前提

初心者です。

csvファイルから英単語、日本語、発音記号を読み込んで、以下のようにコンソール画面に出力したいです。

fabricate
(…を)組み立てて製造する
[fˈæbrɪkèɪt]
revoke
取り消す、廃止する
[rɪvóʊk, rɪvˈəʊk]
violate
犯す、破る
[vάɪəlèɪt, ˈvaɪʌleɪt]

csvファイルは以下のようになっています。

csv

fabricate,(…を)組み立てて製造する,[fˈæbrɪkèɪt] revoke,取り消す、廃止する,[rɪvóʊk, rɪvˈəʊk] violate,犯す、破る,[vάɪəlèɪt, ˈvaɪʌleɪt]

試したC#コード

C#

using System;using System.Collections.Generic;using System.IO;using System.Linq; internal class Program { static void Main(string[] args) { StreamReader sr = new StreamReader(@"読み込むcsvファイルのパス"); var lis1 = new List<string>(); while (!sr.EndOfStream) { string line = sr.ReadLine(); lis1.Add(line); } string split = String.Join(",", lis1); Console.WriteLine(split); var lis2 = new List<string>(); lis2 = split.Split(',').ToList(); for (int i = 0; i < lis2.Count; i += 3) { Console.WriteLine(lis2[i]); //英語 Console.WriteLine(lis2[i+1]); //日本語 Console.WriteLine(lis2[i+2]); //発音記号 } }}

発生している問題

以下、出力結果。

fabricate
(…を)組み立てて製造する
[f?abr?ke?t]
revoke
取り消す、廃止する
"[r?vo?k
r?v???k]"
violate
犯す、破る
"[v???le?t
?va??le?t]"

・発音記号に含まれる" , "によって英語、日本語、発音記号がうまく分離できない。
・発音記号が文字化けしている。

知りたいこと

・プログラム中の" lis2 "のリストを作ったうえで、前提に書いたように出力したいです。
・文字化けの対処法が知りたいです。
よろしくお願いいたします。

補足情報

visual studio 2022

コメントを投稿

0 コメント