前提・実現したいこと
https://qiita.com/7of9/items/f9583159827d5f80a897
のサンプルコードを参考にしています。
A, 1
B, 2
C, 3
の様な形式のcsvファイル
ファイルの行数(要素数)は増減することを想定して、変数として扱いたい
最終的に扱いたいファイルの行数は100行前後になります
発生している問題・エラーメッセージ
下記のsplitの箇所で、行数を変数として修正したいです
C#
1var data = from l in lines.Skip(1) 2 let split = l.Split(',') 3 select new Person 4 { 5 Name = split[0], 6 Race = split[1], 7 Codename = split[2] 8 };
該当のソースコード
C#
1public partial class MainWindow : Window 2 { 3 public MainWindow() 4 { 5 InitializeComponent(); 6 } 7 8 private void B_read_Click(object sender, RoutedEventArgs e) 9 { 10 string appPath = System.AppDomain.CurrentDomain.BaseDirectory; 11 string filename = "test.csv"; 12 string filepath = appPath + "\" + filename; 13 if (File.Exists(filepath) == false) { 14 return; 15 } 16 this.DataContext = PersonService.ReadFile(filepath); 17 PersonService.SetHeaders(filepath, dg1); 18 } 19 } 20 21 // Name, Race, Codename 22 public class Person 23 { 24 public string Name { get; set; } 25 public string Race { get; set; } 26 public string Codename { get; set; } 27 } 28 public static class PersonService 29 { 30 public static List<Person> ReadFile(string filepath) 31 { 32 var lines = File.ReadAllLines(filepath); 33 34 var data = from l in lines.Skip(1) 35 let split = l.Split(',') 36 select new Person 37 { 38 Name = split[0], 39 Race = split[1], 40 Codename = split[2] 41 }; 42 return data.ToList(); 43 } 44 public static void SetHeaders(string filepath, DataGrid dataGrid) 45 { 46 var lines = File.ReadAllLines(filepath); 47 48 int idx = 0; 49 foreach(var aline in lines[0].Split(',')) 50 { 51 dataGrid.Columns[idx].Header = aline; 52 idx++; 53 } 54 } 55 }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。