csvの中身をListに格納したいのですが結果が歯抜けのような感じになってしまっていて困っています。
csvの中身の例
01,山田
02,田中
03,佐藤
04,高橋
05,武田
06,山本
07,山口
08,井上
09,井口
10,上田
11,江藤
12,岡田
13,加藤
とあったときに
デバッグでstrCsvListの中身を確認すると
[0]02,田中
[1]03,佐藤
[2]05,武田
[3]06,山本
[4]08,井上
[5]09,井口
[6]11,江藤
[7]12,岡田
[8]null
[9]null
要素数13をそのまま格納したいのですがと01/04/07/10が飛んでしまった上に後ろ二つがnullになっている状態です
strCsvList.Add(sr.ReadLine());
を
strCsvList.Add(list);
に変えると
[0]01
[1]山田
[2]02
[3]田中
・
・
・
[25]加藤
になります。
[0]01 山田(配列)
[1]02 田中
・
・
・
という形にしたいのですがどうしたらよいでしょうか?
使用環境
visualstudio2019
WindowsForms
.NET framework4.7.2
C
1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Text; 8using System.Threading.Tasks; 9using System.Windows.Forms; 10using System.IO; 11 12namespace 読み込みテスト 13{ 14 public partial class Form1 : Form 15 { 16 public Form1() 17 { 18 InitializeComponent(); 19 } 20 21 private void Button1_Click(object sender, EventArgs e) 22 { 23 List<string> strCsvList = new List<string>(); 24 25 26 try 27 { 28 //読み込むcsvファイルのパスを指定して開く 29 using (StreamReader sr = new StreamReader(@"ファイルパス\ファイル名.csv", Encoding.GetEncoding("Shift_JIS"))) 30 { 31 while (sr.EndOfStream == false) 32 { 33 34 //1行づつ読み取る。 35 string line = sr.ReadLine(); 36 //カンマで区切る 37 string[] values = line.Split(','); 38 foreach (var list in values) 39 { 40 strCsvList.Add(sr.ReadLine()); 41 } 42 43 44 } 45 46 47 } 48 catch 49 { 50 MessageBox.Show("エラー"); 51 } 52 53 } 54 } 55}
回答4件
あなたの回答
tips
プレビュー