Linqについて調べてみた / I looked into Linq (日本語 / 英語)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1812041/6412063e-2502-abb7-1096-82300aae743a.png)
# 日本語
こんばんわ！
Advent Calendar 2024に参加してまして、22日目の記事を書いていこうと思います。
題材は「C# Advent Calendar 2024」ということで、Linqについて書いていこうと思います。

### LINQ とは？
LINQ (Language Integrated Query) は、C# に統合されたクエリ言語です。SQL のようなクエリ構文を使って、オブジェクトやデータソースを操作できます。LINQ を使うと、コードがシンプルで直感的になり、生産性が向上します。

### 使用例
LINQ には 2 つの構文があります。

クエリ式構文（Query Syntax） - SQL ライクな書き方
メソッド式構文（Method Syntax） - メソッドチェーンを使った書き方

偶数を取得するコードをそれぞれで書いてみます。

###### クエリ式構文
```csharp
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var evenNumbers = from n in numbers
                  where n % 2 == 0
                  select n;

foreach (var number in evenNumbers)
{
    Console.WriteLine(number);
}
```

###### メソッド式構文
```csharp
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var evenNumbers = numbers.Where(n => n % 2 == 0);

foreach (var number in evenNumbers)
{
    Console.WriteLine(number);
}
```

メソッドには下記様々あります。バリエーション豊かです


| 操作               | 説明                                  |
|--------------------|---------------------------------------|
| Where              | 条件に一致する要素をフィルタリングする  |
| Select             | 各要素を変換する                      |
| OrderBy            | 昇順に並べ替える                      |
| OrderByDescending  | 降順に並べ替える                      |
| GroupBy            | グループ化する                        |
| Sum                | 合計値を計算する                      |
| Average            | 平均値を計算する                      |
| Count              | 要素数をカウントする                  |
| First              | 最初の要素を取得する                  |
| Any                | 条件に一致する要素があるか判定する    |



ここまでです。
読んでいただきありがとうございます

# ENGLISH
Good evening!
I am participating in Advent Calendar 2024 and I am going to write an article for the 22nd day.
The subject is “C# Advent Calendar 2024”, so I will write about Linq.

### What is LINQ?
LINQ (Language Integrated Query) is a query language integrated into C# that allows you to manipulate objects and data sources using an SQL-like query syntax.

### Example usage
LINQ has two syntaxes.

Query Syntax - SQL-like syntax
Method Syntax - a way to write using method chains

Let's try to write a code to get an even number in each syntax.

###### Query Syntax
```csharp
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var evenNumbers = from n in numbers
                  where n % 2 == 0
                  select n;.

foreach (var number in evenNumbers)
{
    Console.WriteLine(number);
}
````

###### method expression syntax
````csharp
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var evenNumbers = numbers.Where(n => n % 2 == 0);

foreach (var number in evenNumbers)
{
    Console.WriteLine(number);
}
````

Methods include the following There are many variations


| Operation | Description |
|--------------------|---------------------------------------|
| Select | Convert each element to a new one.
| Select | Convert each element | OrderBy
| Sort by ascending order | OrderByDescending | Descending Order
| Sort in Descending Order | GroupBy | Grouping
| GroupBy | Group the elements together | Sum
Sum | Calculate the total value | Average | Calculate the average value
| Average | Calculate the average value
| Count | Count the number of elements
| Any | Any element that matches the condition
| Any | Determine if any element matches the condition


That's all for now.
Thank you for reading!