csvファイルを読み込み、一行目の年月から最終行の年月まで全て統一されたデータであればtrue,そうでなければfalseを返すようにしたいです。
csvの中身は
csv
1年月,aコード,bコード,cコード 2202012,100,200,300 3202012,400,500,600 4. 5.
のような形になっています。
一行ずつ読み込み、modelに格納等は出来ているのですが、どのように検証すればいいのかがわかりません。
試したこと
下記C#クラスにて、一行目のcltspt0を使いまわして、二行目からの読み込み時に比較しようとしたのですがwhileの中で繰り返されてしまって常にtrueが出てしまいました。
C#
1 public List<CSVmodel> GetCnt(string csvName) 2 { 3 4 5 if (File.Exists(csvName)) 6 { 7 StreamReader st = new StreamReader(csvName, Encoding.GetEncoding("UTF-8")); 8 List<CSVmodel> list = new List<CSVmodel>(); 9 10 while (!st.EndOfStream) 11 { 12 string clt = st.ReadLine(); 13 string[] cltSpt = clt.Split(','); 14 15 //var std = cltSpt[0]; 16 //if (cltSpt[0] == std) 17 //{ 18 19 var model = new CSVmodel(); 20 21 model.years = int.Parse(cltSpt[0]); //年月 22 model.a = int.Parse(cltSpt[1]); 23 model.b = int.Parse(cltSpt[2]); 24 model.c = int.Parse(cltSpt[3]); 25 model.d = double.Parse(cltSpt[4]); 26 model.e = double.Parse(cltSpt[5]); 27 28 list.Add(model); 29 //} 30 //else 31 //{ 32 // return null; 33 //} 34 } 35 return list; 36 } 37 else 38 { 39 return null; 40 } 41 }
C#
1 public class CSVmodel 2 { 3 public int years { get; set; } 4 public int a { get; set; } 5 public int b { get; set; } 6 public int c { get; set; } 7 public double d { get; set; } 8 public double e { get; set; } 9 }
足りない情報は追記いたします。
よろしくお願いいたします。
環境:
windows10 64bit
visual studio 2019
ASP.NET webアプリケーション MVC
.NET Framework 4.7.2
回答2件
あなたの回答
tips
プレビュー