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