Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9509

【C#入門】Listの使い方について|要素の追加・削除、ソート、検索

$
0
0

この記事では、《SQL Server のストアドプロシージャ》について、
業務を通して学習した内容を、備忘録としてまとめています。

  • 『List』とは…?
  • 『List』の要素の追加・削除する方法
  • 『List』をソート・検索する方法

こういった内容についてまとめています。

※本記事は、自分で学習したことのまとめ用として書いています。
尚、解説で誤った点があれば、スローして頂ければ喜んでキャッチしますのでお願い致します。

『List』 とは…?

list_1.jpg

『List』とは・・・

同じデータ型の値をまとめて取り扱うためのクラスです。

『List』は配列と異なり、簡単に要素を追加・削除することができるメソッドが用意されているので…

要素数が変化する場合には、『List』を使用します。

C#では、配列のようなデータ構造に対して、途中でデータを追加・削除したい場合にList(=リストクラス)を使用します。

『List』 の基本的な使い方

まず、使用する際は下記を記述します。

usingSystem;usingSystem.Collections.Generic;

『List』 の宣言・初期化について

program.cs
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];

実際に動かしてみます。

program.cs
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);}

実際に動かしてみます。

program.cs
usingSystem;usingSystem.Collections.Generic;namespaceSample{classProgram{staticvoidMain(string[]args){varsampleList=newList<string>(){"hoge","hogehoge"};foreach(varstrinsampleList){Console.WriteLine(str);}}}}

実行結果:

hoge
hogehoge

『List』 と 『ArrayList』 の違いは…?

list_2.jpg

ここでは、『List』と『ArrayList』の違いを解説します。

『List』は…

指定したデータ型の要素しか格納できませんが、要素を取り出すときにキャストをする必要がありません。

そのため・・・

データ型があらかじめ決まっている場合には、『List』を使う方が便利です。

反対に、『ArrayList』は…

異なるデータ型を格納することができますが、要素を取り出すときにキャストする必要があり、コードの記述に手間がかかります。

基本的には、『ArrayList』よりも『List』の方が使いやすいので、『List』を使用すれば大丈夫かと思います。

『List』 の要素の追加・削除する方法|Add/Remove

『List』の要素の追加|Addメソッド

ここでは・・・

『List』に要素を追加する方法を解説します。

『List』に要素を追加するには、Addメソッドを使います。

Addメソッドは、下記のように使用します。

program.cs
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メソッドは、下記のように使用します。

program.cs
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メソッドは、下記のように使用します。

program.cs
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メソッドは、下記のように使用します。

program.cs
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メソッドは、下記のように使用します。

program.cs
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

Viewing all articles
Browse latest Browse all 9509

Trending Articles