[LINQ] クエリ式(複数条件を指定してデータを取得する)

LINQのクエリ式で複数の条件を指定する方法について見ていきましょう。


Andを使用する

Andは「かつ」を意味します。

VBの場合は「And」、C#の場合は「&」を使用します。

以下は3以上 かつ 5以下のデータを取得します。

VBの例

Dim numbers() As Integer = {3, 5, 2, 1, 9, 8, 7}

Dim data = From num In numbers
           Where num >= 3 And num <= 5
           Select num

C#の例

int[] numbers = { 3, 5, 2, 1, 9, 8, 7 };

var data = from num in numbers
           where num >= 3 & num <= 7
           select num;

ショートサーキットも使用可能です。

VBの場合は AndAlso, C#は&&を使用します。

VBの例

Dim numbers() As Integer = {3, 5, 2, 1, 9, 8, 7}

Dim data = From num In numbers
           Where num >= 3 AndAlso num <= 5
           Select num

C#の例

int[] numbers = { 3, 5, 2, 1, 9, 8, 7 };

var data = from num in numbers
           where num >= 3 && num <= 7
           select num;

 


 Orを使用する

Orは「または」を意味します。

VBの場合は「Or」、C#の場合は「|」を使用します。

以下は3以下 または 5以上のデータを取得します。

VBの例

Dim numbers() As Integer = {3, 5, 2, 1, 9, 8, 7}

Dim data = From num In numbers
           Where num <= 3 Or num >= 8
           Select num

C#の例

int[] numbers = { 3, 5, 2, 1, 9, 8, 7 };

var data = from num in numbers
           where num <= 3 | num >= 8
           select num;

foreach (var item in data)
{
    Console.WriteLine(item);
}

ショートサーキットも使用可能です。

VBの場合は OrElse, C#は||を使用します。
VBの例

Dim numbers() As Integer = {3, 5, 2, 1, 9, 8, 7}

Dim data = From num In numbers
           Where num <= 3 OrElse num >= 8
           Select num

C#の例

int[] numbers = { 3, 5, 2, 1, 9, 8, 7 };

var data = from num in numbers
           where num <= 3 || num >= 8
           select num;

foreach (var item in data)
{
    Console.WriteLine(item);
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です