最近、C#が好きになりかけています。
理由は楽ちんだから。
C#をやろうとすると避けて通れないものにLINQがあります。
別に使わなくてもかけるんだけど、
やっぱりLINQを知らないとほかのソースコードも読めないことがしばしば。
ちょっと勉強しないと使えるようにならないっぽい代物なので、
勉強しましょうってことでおすすめツールの紹介とプチ解説です。
LINQとは
まじめに解説しません。とりあえず、必要最低限でデータベースを使う気がないなら、
LINQ to ObjectとLINQ to XMLさえ学んでおけばOKでしょう。
今回はLINQ to Objectについて学びます。
必要なツール
Visual Studio!!
そりゃそうだって言われるので、今回はそれではなく、
https://www.linqpad.net/
LINQPadなるものがあるのでこれを使いましょう!
LINQ to Objectとは
C#のCollectionの処理ライブラリです。
ListやらDictionaryやらごにょごにょできます。
以上w
使うと便利になりますよってことで積極的に使いましょう。
ざっくり文法
省略できるのもいくつかありますが、まずはとりあえず基本形を。
var query = from [クラス名] 範囲変数名 in コレクション where [条件] select 範囲変数名
です。
LINQPadで書いてみます。
LINQPadをたちあげたら、上側のLanguageをC# Program
に変えてあげて、
プログラムを打ち込みます。
public class 成績 { public string 学籍番号 { get; set; } public string 教科 { get; set; } public int 点数 { get; set; } } void Main() { var 全成績 = new List<成績>() { new 成績 {学籍番号="S-0001", 教科="国語", 点数=90}, new 成績 {学籍番号="S-0001", 教科="数学", 点数=80}, new 成績 {学籍番号="S-0002", 教科="国語", 点数=70}, new 成績 {学籍番号="S-0002", 教科="数学", 点数=70}, new 成績 {学籍番号="S-0003", 教科="国語", 点数=20}, new 成績 {学籍番号="S-0003", 教科="数学", 点数=50}, }; var query = from 成績 範囲 in 全成績 where 範囲.点数 >= 80 select 範囲; foreach (var v in query) { Console.WriteLine(v); } }
実行ボタンを押すと、割とゴージャスな結果が出ます。
簡単だね!
Listの初期化の書き方言語によって微妙に違うから間違えますね。
間違い例
var 全成績 = new List<成績> { new {"S-0001","国語", 90}, ... };
とか間違った書き方しててこれでいけないんだっけ???とか思いググってしまいました。
まだまだC#初心者ですね。