datatableに対してLINQを使う練習をしているのですが
NUMBERが3の時のNAMEの値("ううう")をメッセージボックスに出したいのですが
"System.Data.EnumerableRowCollection<string>"と表示されてしまいます。
Linqで値を取得するにはどうすればいいでしょうか?
C#
1public partial class Form1 : Form 2 { 3 public Form1() 4 { 5 InitializeComponent(); 6 DataTable dt = new DataTable(); 7 dt.Columns.Add("NUMBER"); 8 dt.Columns.Add("NAME"); 9 10 dt.Rows.Add(1, "あああ"); 11 dt.Rows.Add(2, "いいい"); 12 dt.Rows.Add(3, "ううう"); 13 var result = dt.AsEnumerable().Where(x => (x["NUMBER"].ToString() == "3")).Select(x => x["NAME"].ToString()); 14 string a = result.ToString(); 15 MessageBox.Show(a); 16 } 17 }
result は IEnumerable<string> です。ToString がオーバーライドされていないので、ToString するとデフォルト値であるクラス名を表示します。
回答1件
あなたの回答
tips
プレビュー