この記事では、《SQL Server のストアドプロシージャ》について、
業務を通して学習した内容を、備忘録としてまとめています。
- 『List』とは…?
- 『List』の要素の追加・削除する方法
- 『List』をソート・検索する方法
こういった内容についてまとめています。
※本記事は、自分で学習したことのまとめ用として書いています。
尚、解説で誤った点があれば、スローして頂ければ喜んでキャッチしますのでお願い致します。
『List』 とは…?
『List』とは・・・
同じデータ型の値をまとめて取り扱うためのクラスです。
『List』は配列と異なり、簡単に要素を追加・削除することができるメソッドが用意されているので…
要素数が変化する場合には、『List』を使用します。
C#では、配列のようなデータ構造に対して、途中でデータを追加・削除したい場合にList(=リストクラス)を使用します。
『List』 の基本的な使い方
まず、使用する際は下記を記述します。
usingSystem;usingSystem.Collections.Generic;
『List』 の宣言・初期化について
usingSystem;usingSystem.Collections.Generic;namespaceSample{classProgram{staticvoidMain(string[]args){// int型を格納するリストを宣言varintlist=newList<int>();// 初期化した際の初期値を指定する場合は、以下のように宣言varnumber=newList<int>(){10,20,30,40,50,60,70,80,90,100};// string型を格納するリストを宣言varstrList=newList<string>(){"hoge","hogehoge"};}}}
『List』 の要素へのアクセス方法
// 配列のように添え字でアクセスできますintitem=list[1];
実際に動かしてみます。
usingSystem;usingSystem.Collections.Generic;namespaceSample{classProgram{staticvoidMain(string[]args){varsampleList=newList<string>(){"hoge","hogehoge"};Console.WriteLine(sampleList[1]);}}}
実行結果:
hogehoge
『List』 の要素を全部取り出す
varsampleList=newList<string>(){"hoge","hogehoge"};foreach(varstrinsampleList){Console.WriteLine(str);}
実際に動かしてみます。
usingSystem;usingSystem.Collections.Generic;namespaceSample{classProgram{staticvoidMain(string[]args){varsampleList=newList<string>(){"hoge","hogehoge"};foreach(varstrinsampleList){Console.WriteLine(str);}}}}
実行結果:
hoge
hogehoge
『List』 と 『ArrayList』 の違いは…?
ここでは、『List』と『ArrayList』の違いを解説します。
『List』は…
指定したデータ型の要素しか格納できませんが、要素を取り出すときにキャストをする必要がありません。
そのため・・・
データ型があらかじめ決まっている場合には、『List』を使う方が便利です。
反対に、『ArrayList』は…
異なるデータ型を格納することができますが、要素を取り出すときにキャストする必要があり、コードの記述に手間がかかります。
基本的には、『ArrayList』よりも『List』の方が使いやすいので、『List』を使用すれば大丈夫かと思います。
『List』 の要素の追加・削除する方法|Add
/Remove
『List』の要素の追加|Add
メソッド
ここでは・・・
『List』に要素を追加する方法を解説します。
『List』に要素を追加するには、Add
メソッドを使います。
Add
メソッドは、下記のように使用します。
usingSystem;usingSystem.Collections.Generic;namespaceSample{classProgram{staticvoidMain(string[]args){varsampleList=newList<string>();sampleList.Add("hoge");sampleList.Add("hogehoge");foreach(varstrinsampleList){Console.WriteLine(str);}}}}
実行結果:
hoge
hogehoge
『List』 の要素の削除|Remove
メソッド
ここでは・・・
『List』の要素を削除する方法を解説します。
『List』の要素を削除するには、Remove
メソッドを使います。
Remove
メソッドは、下記のように使用します。
usingSystem;usingSystem.Collections.Generic;namespaceSample{classProgram{staticvoidMain(string[]args){varsampleList=newList<string>();sampleList.Add("hoge");sampleList.Add("hogehoge");sampleList.Remove("hogehoge");foreach(varstrinsampleList){Console.WriteLine(str);}}}}
実行結果:
hoge
『List』 を並び替え(ソート)する方法|OrderBy
メソッド
ここでは・・・
『List』をソートする方法を解説します。
『List』をソートするには、LINQ拡張のOrderBy
メソッドを使います。
OrderBy
メソッドは、下記のように使用します。
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;namespaceSample{classProgram{staticvoidMain(string[]args){varnumber=newList<int>(){20,10,40,30,60,50,80,70,100,90};varorderedNumber=number.OrderBy(x=>x)//.OrderByDescending(x => x)foreach(varnuminorderedNumber){Console.WriteLine(num);}}}}
『List』 を検索する方法|Where
メソッド、Contains
メソッド
『List』の要素を検索して、目的の要素を探すにはいくつかの方法がありますが…
通常は、LINQ拡張を使えばいいです。
ただし・・・
要素数が多く、かつ、要素が昇順に並んでいるときに特定の要素を検索する場合は、
ListクラスのBinarySearch
メソッドが高速です。
また・・・
要素が含まれているどうかを判定するには、ListクラスのContains
メソッドを使用します。
Where
メソッド|条件を指定して要素を検索する
『List』の要素を検索して、条件に一致する要素を取得するには、LINQ拡張のWhere
メソッドを使います。
Where
メソッドは、下記のように使用します。
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;namespaceSample{classProgram{staticvoidMain(string[]args){varnumber=newList<int>(){10,20,30,40,50,60,70,80,90,100};varselectedNumber=number.Where(x=>x>50);foreach(varnuminselectedNumber){Console.WriteLine(num);}}}}
実行結果:
60
70
80
90
100
Contains
メソッド|指定した値が含まれるか判定する
『List』の要素を検索して値が含まれるかどうかを判定するには、ListクラスContains
メソッドを使います。
Contains
メソッドは、下記のように使用します。
usingSystem;usingSystem.Collections.Generic;namespaceSample{classProgram{staticvoidMain(string[]args){varsampleList=newList<string>();sampleList.Add("hoge");sampleList.Add("hogehoge");stringitem="hogehoge";if(sampleList.Contains(item)){Console.WriteLine("{0}が見つかりました",item);}else{Console.WriteLine("{0}は見つかりませんでした",item);}foreach(varstrinsampleList){Console.WriteLine(str);}}}}
実行結果:
hogehogeが見つかりました
hoge
hogehoge