ぜひこちらの記事もご覧ください!!
転職回数4回(独立系⇒メーカー系⇒社内SE⇒SES)の私がSESのメリットについて書きました!
今回のテーマ
こんにちは、サルモリです。
今回は下記の記事の続きです。まだ見てない方は是非、下記の記事もみてくださいね!
こちらもCHECK
-
-
C# DataTable型を使用するのに飽き飽きしてる方必見!! DataTable型の全てのデータをリスト化する方法!!さらにListとタプルを使いこなそう!
ぜひこちらの記事もご覧ください!! 転職回数4回(独立系⇒メーカー系⇒社内SE⇒SES)の私がSESのメリットについて書きました! SESで働いている私の年収と働き方 今回のテーマ 今回の記事は下記の ...
続きを見る
前回の記事では、DataTable型のデータをリストとタプルを組み合わせて、リスト化しよう!!というテーマでした。
今回はDataTable型のデータをリストとクラスを組み合わせて、定義していきます!
それでは、早速やっていきましょう!!

DataTable型のデータとクラスの準備
前回と同様に列が4つあるテーブルを用意します。
こんな感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
using System; using System.Data; using System.Linq; class Program { static void Main(string[] args) { DataTable dt = new DataTable("Robot"); dt.Columns.Add("Name"); dt.Columns.Add("Maker"); dt.Columns.Add("Color"); dt.Columns.Add("Strength"); DataRow dr = dt.NewRow(); dr["Name"] = "Rockman"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Blue"; dr["Strength"] = "5"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Rollchan"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Pink"; dr["Strength"] = "1"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Fireman"; dr["Maker"] = "Dr_Wily"; dr["Color"] = "Red"; dr["Strength"] = "3"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Iceman"; dr["Maker"] = "Dr_Wily"; dr["Color"] = "Red"; dr["Strength"] = "4"; dt.Rows.Add(dr); foreach (DataRow robot in dt.Rows) { Console.WriteLine(robot["Name"]); } } } |
出力結果
Rockman
Rollchan
Fireman
Iceman
続けて、Robotクラスを下記のように定義します。DataTable型のデータを下記のクラスに設定できればOKです!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class Robot { string name, maker, color, strength; public Robot(string _name, string _maker, string _color, string _strength) { name = _name; maker = _maker; color = _color; strength = _strength; } public string getName() { return name; } public string getMaker() { return maker; } public string getColor() { return color; } public string getStrength() { return strength; } } |
DataTable型のデータをリストに格納する
それでは、早速ロボット型を定義したリストに格納してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
using System; using System.Data; using System.Linq; class Program { static void Main(string[] args) { DataTable dt = new DataTable("Robot"); dt.Columns.Add("Name"); dt.Columns.Add("Maker"); dt.Columns.Add("Color"); dt.Columns.Add("Strength"); DataRow dr = dt.NewRow(); dr["Name"] = "Rockman"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Blue"; dr["Strength"] = "5"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Rollchan"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Pink"; dr["Strength"] = "1"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Fireman"; dr["Maker"] = "Dr_Wily"; dr["Color"] = "Red"; dr["Strength"] = "3"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Iceman"; dr["Maker"] = "Dr_Wily"; dr["Color"] = "Red"; dr["Strength"] = "4"; dt.Rows.Add(dr); var robotlist = dt.AsEnumerable().Select(n => new Robot(n["Name"].ToString(), n["Maker"].ToString(), n["Color"].ToString(), n["Strength"].ToString())) .ToList(); foreach(var robot in robotlist) { Console.WriteLine(robot.getName() + ":" + robot.getMaker() + ":" + robot.getColor() + ":" + robot.getStrength()); } } } |
出力結果
Rockman:Dr_Light:Blue:5
Rollchan:Dr_Light:Pink:1
Fireman:Dr_Wily:Red:3
Iceman:Dr_Wily:Red:4
出来ました!ロボットクラスでデータを格納してあるので、ロボットクラス内で定義しているメソッドなども使い放題ですね!!
全体のプログラム
全体のプログラムは下記となります。ぜひ参考にしてくださいね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
using System; using System.Data; using System.Linq; class Program { static void Main(string[] args) { DataTable dt = new DataTable("Robot"); dt.Columns.Add("Name"); dt.Columns.Add("Maker"); dt.Columns.Add("Color"); dt.Columns.Add("Strength"); DataRow dr = dt.NewRow(); dr["Name"] = "Rockman"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Blue"; dr["Strength"] = "5"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Rollchan"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Pink"; dr["Strength"] = "1"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Fireman"; dr["Maker"] = "Dr_Wily"; dr["Color"] = "Red"; dr["Strength"] = "3"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Iceman"; dr["Maker"] = "Dr_Wily"; dr["Color"] = "Red"; dr["Strength"] = "4"; dt.Rows.Add(dr); var robotlist = dt.AsEnumerable().Select(n => new Robot(n["Name"].ToString(), n["Maker"].ToString(), n["Color"].ToString(), n["Strength"].ToString())) .ToList(); foreach (var robot in robotlist) { Console.WriteLine(robot.getName() + ":" + robot.getMaker() + ":" + robot.getColor() + ":" + robot.getStrength()); } } class Robot { string name, maker, color, strength; public Robot(string _name, string _maker, string _color, string _strength) { name = _name; maker = _maker; color = _color; strength = _strength; } public string getName() { return name; } public string getMaker() { return maker; } public string getColor() { return color; } public string getStrength() { return strength; } } } |
まとめ
最後に前回の記事で解説したリストとタプルの組み合わせとクラスを定義してリストに格納する方法どっちを使うべきなのでしょうか。
私は、下記のように使い分けています。
使い分け方
- リストとタプル リストに格納した後に一部分のソースコードでしか使用しない場合
- クラスの定義 リストに格納した後に複数のソースコードで沢山利用する場合
場面場面で使用する方法を変えていけばいいと思います。
どちらの方法も使いやすい形に変えており、間違えではないのでバンバン使っちゃってくださいね!!
それでは、今回の記事は以上です。最後まで見て頂きありがとうございました。

ぜひこちらの記事もご覧ください!!
転職回数4回(独立系⇒メーカー系⇒社内SE⇒SES)の私がSESのメリットについて書きました!
私は下記のサイトで現在の働き方、フルリモート(週5)の企業に出会うことができました。
今でもとても感謝しています!カウンセリングは無料なので、ぜひどうぞ!