C#のLINQで配列の値を取得するサンプルです。
目次
LINQ
- Language Integrated Queryの略です。
- クエリ構文とメソッド構文があります。
- 以下は、MicrosoftのLINQ でのクエリ構文とメソッド構文 (C#)のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/linq/query-syntax-and-method-syntax-in-linq
クエリ構文
- クエリ構文はSQLに似た記述でデータを取得できます。
- 以下は、MicrosoftのC# プログラミング ガイドのLINQのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/linq/index
LINQで配列の値を全件取得する
LINQで配列の値を全件取得するサンプルです。
11,12行目はクエリ構文で8行目の配列の値を全件取得しています。
20,21行目はメソッド構文で8行目の配列の値を全件取得しています。
21行目はラムダ式です。(x=>x)は、引数がxで戻り値がxという意味です。
using System;
using System.Linq;
class Test1
{
static void Main()
{
var number1 = new[] { 1, 30, 10 };
// クエリ構文
var q1 = from x in number1
select x;
foreach (var a in q1)
{
Console.WriteLine(a);// 1 30 10
}
// メソッド構文
var q2 = number1
.Select (x => x);
foreach (var a in q2)
{
Console.WriteLine(a);// 1 30 10
}
}
}
LINQで配列の値に条件を指定して取得する
LINQで配列の値に条件を指定して取得するサンプルです。
11-13行目はクエリ構文です。
12行目はwhereで10より大きいという条件を付けています。
21-23行目は、メソッド構文です。
22行目はラムダ式です。(x => x>10)は、引数がxで戻り値がx>10という意味です。
using System;
using System.Linq;
class Test1
{
static void Main()
{
var number1 = new[] { 1, 30, 10 };
// クエリ構文
var q1 = from x in number1
where x > 10
select x;
foreach (var a in q1)
{
Console.WriteLine(a);// 30
}
// メソッド構文
var q2 = number1
.Where(x => x>10)
.Select (x => x);
foreach (var a in q2)
{
Console.WriteLine(a);// 30
}
}
}
LINQで配列の値の並び順を変えて取得する
LINQで配列の値の並び順を変えて取得するサンプルです。
11-13と21-23行目はクエリ構文です。
12行目はorderbyで昇順を指定しています。
22行目はorderbyのあとにdescendingを付けて降順を指定しています。
33-35,43-45行目は、メソッド構文です。
34行目はラムダ式です。(x => x)は、引数がxで戻り値がxという意味です。OrderByで昇順を指定しています。
44行目はラムダ式です。(x => x)は、引数がxで戻り値がxという意味です。OrderByDescendingで降順を指定しています
using System;
using System.Linq;
class Test1
{
static void Main()
{
var number1 = new[] { 1, 30, 10 };
// クエリ構文 並び順を変更 昇順
var q1 = from x in number1
orderby x
select x;
foreach (var a in q1)
{
Console.WriteLine(a);// 1 10 30
}
// クエリ構文 並び順を変更 降順
var q2 = from x in number1
orderby x descending
select x;
foreach (var a in q2)
{
Console.WriteLine(a);// 30 10 1
}
// メソッド構文 並び順を変更 昇順
var q3 = number1
.OrderBy(x => x)
.Select(x => x);
foreach (var a in q3)
{
Console.WriteLine(a);// 1 10 30
}
// メソッド構文 並び順を変更 降順
var q4 = number1
.OrderByDescending(x => x)
.Select(x => x);
foreach (var a in q4)
{
Console.WriteLine(a);// 30 10 1
}
}
}
関連の記事
C# if文のサンプル
C# switch文のサンプル
C# while文とdo while文のサンプル
C# for文とbreakとcontinueのサンプル
C# 配列のサンプル