C#樹林– category –
プログラミング言語のC#を勉強したときのノートです。
-
C#樹林
How to Generate Sequential Number Lists Using the LINQ Range Method in C#
When creating test data or generating options for dropdown lists (such as years, months, or days), you often need a collection of consecutive numbers. While it is possible to add numbers to a list using a for loop, using the Enumerable.R... -
C#樹林
【C#】LINQのRangeメソッドで連番や指定範囲の数値リストを生成する
テストデータの作成や、ドロップダウンリストの選択肢(年、月、日など)を生成する際、連続した数値のコレクションが必要になることがあります。forループを使用してリストに追加していく方法も可能ですが、C#のLINQに含まれるEnumerable.Rangeメソッドを... -
C#樹林
Determining if Two Lists Are Identical Using LINQ’s SequenceEqual in C#
In application development, situations where you need to verify whether the contents of two lists (arrays or collections) are identical occur frequently. Examples include consistency checks before and after data migration, or comparing e... -
C#樹林
【C#】LINQのSequenceEqualで2つのリストが完全に一致するか判定する
アプリケーション開発において、2つのリスト(配列やコレクション)の内容が同一であるかを検証したい場面は頻繁に発生します。例えば、データ移行前後の整合性チェックや、単体テストにおける期待値と実測値の比較などです。 C#のLINQに含まれるSequenceE... -
C#樹林
【C#】LINQのZipメソッドで2つのリストを結合してタプルを作成する
異なる2つの配列やリストがあり、それぞれの「同じインデックスにある要素」をペアとして扱いたい場合、forループを使用してインデックス管理を行うのは記述が冗長になりがちです。 C#のLINQにあるZipメソッドを使用すると、ファスナー(Zipper)を閉じる... -
C#樹林
Simply Concatenating Multiple Collections Using the LINQ Concat Method in C#
In programming, you often want to treat data managed as separate arrays or lists as a single, unified list. The Concat method included in C# LINQ allows you to connect another collection directly to the end of an existing one. In this ar... -
C#樹林
【C#】LINQのConcatメソッドで複数のコレクションを単純に連結する
プログラミングにおいて、別々の配列やリストとして管理されているデータを、一つのまとまったリストとして扱いたい場面は多々あります。 C#のLINQに含まれるConcatメソッドを使用すると、既存のコレクションの後ろに別のコレクションをそのまま連結するこ... -
C#樹林
【C#】LINQのSelectManyで階層構造のリストを平坦化(フラット)にする
オブジェクトが別のコレクションをプロパティとして持っている場合、それらをまとめて一つのリストとして扱いたい場面があります。これを「平坦化(Flatten)」と呼びます。 通常のSelectメソッドでは「リストのリスト(入れ子構造)」になってしまい扱い... -
C#樹林
【C#】LINQのGroupJoinで親データと子データを階層的に結合する
データベースやログ解析などのシステム開発において、「親となるデータ」と、それに紐付く「複数の子データ」を結合し、扱いやすい階層構造にまとめたいケースがあります。 C#のLINQにあるGroupJoinメソッドを使用すると、SQLの「左外部結合(LEFT OUTER J... -
C#樹林
【C#】LINQのJoinメソッドで2つのリストを結合する(内部結合)
リレーショナルデータベース(RDB)において、テーブル同士を共通のIDで紐付ける「JOIN(結合)」は頻繁に行われる操作です。C#のLINQにおいても、Joinメソッドを使用することで、メモリ上の2つのコレクションに対して同様の結合操作を行うことができます... -
C#樹林
【C#】LINQのGroupByメソッドでデータをキーごとにグループ化する
業務アプリケーション開発において、売上データやログデータなどを特定の条件(カテゴリ、日付、ステータスなど)ごとに分類して処理したい場面は頻繁に発生します。 C#のLINQに含まれるGroupByメソッドを使用すると、こうしたグループ化処理を宣言的かつ... -
C#樹林
【C#】LINQのExceptメソッドで2つのリストの差分(差集合)を抽出する
2つのコレクションを比較し、「片方にあって、もう片方にはないデータ」を抽出したい場合、数学でいう「差集合(Relative Complement)」の考え方が必要になります。これは、リストAからリストBに含まれる要素を引き算するイメージです。 C#のLINQには、こ... -
C#樹林
【C#】LINQのIntersectメソッドで2つのリストの共通要素(積集合)を抽出する
2つのデータセットを比較し、「両方に含まれているデータ」だけを取り出したい場合があります。これを数学的な用語で「積集合(Intersection)」と呼びます。 C#のLINQには、この操作を直感的に行えるIntersectメソッドが用意されています。今回は、採用シ... -
C#樹林
【C#】LINQのUnionメソッドで重複を除外してコレクションを結合する
2つのリストや配列を結合する際、単にデータを連結するのではなく「重複を取り除いて一意なリストを作りたい」というケースがあります。このような集合演算(和集合)を行うために、LINQにはUnionメソッドが用意されています。 今回は、複数のメーリングリ... -
C#樹林
【C#】LINQのToLookupメソッドで要素をキー別にグループ化・検索する
データの集合を特定の条件(キー)ごとにグループ化したい場合、LINQのToLookupメソッドを使用すると非常に便利です。 よく似た機能にGroupByがありますが、ToLookupは即時実行され、扱いやすいILookup<TKey, TElement>インターフェースを返すという... -
C#樹林
【C#】LINQのToHashSetを活用したコレクションの重複排除と集合演算
C#において、配列やリストなどのコレクションから重複を取り除いたり、特定の集合演算を行ったりする際、HashSet<T>は非常に強力なクラスです。 特に.NET Framework 4.7.2および.NET Core 2.0以降で利用可能なLINQの拡張メソッドToHashSetを使用する... -
C#樹林
【C#】LINQのToDictionaryメソッド:リストや配列をDictionaryに変換して検索を効率化する方法
リストを「検索しやすい形」に変換する C#でデータを扱う際、データベースやAPIから取得したデータは、多くの場合List<T>や配列として提供されます。これをそのまま「IDを使って特定のデータを検索」しようとすると、リストの先頭から順に探す(線形... -
C#樹林
【C#】LINQのクエリ結果を配列やListに変換する:ToArrayとToListの使い分けと即時実行
LINQの「遅延実行」と「即時実行」 C#のLINQ(Select, Whereなど)を使用する際、非常に重要な概念があります。それは、これらのメソッドが返す値は「データそのもの(結果の集合)」ではなく、「クエリ(命令の手順)」であるということです。 // この時... -
C#樹林
【C#】LINQのContainsメソッド:配列やリストに特定の要素が含まれているか判定する方法
コレクション内の要素の存在確認 C#で配列やリストを扱う際、「このリストの中に特定の値が含まれているか?」を確認したい場面は頻繁にあります。例えば、入力されたIDが許可リストにあるか、あるいは指定された数値が当たり番号に含まれているか、といっ... -
C#樹林
【C#】LINQのAnyメソッド:要素の存在確認と条件判定を効率的に行う方法
「少なくとも1つあるか」を判定する コレクションを扱う処理において、「リストが空でないか確認したい」や「エラー状態のデータが1つでも含まれているか調べたい」といった、**存在確認(Existence Check)**を行う場面は頻繁に発生します。 Count() >... -
C#樹林
【C#】LINQのAllメソッド:すべての要素が条件を満たしているか判定する方法と空リストの挙動
全要素の条件判定 配列やリストなどのコレクションデータを検証する際、「リストに含まれる数値はすべて正の数か?」や「登録されているユーザーは全員有効なステータスか?」といった、すべての要素が特定の条件を満たしているかを確認したい場面は頻繁に... -
C#樹林
【C#】LINQのAverageメソッド:配列やリストの平均値を算出する方法と空リストの注意点
データの平均値を計算する 統計データの解析や、ゲームのスコア計算、システムログのパフォーマンス分析など、データの「平均値」を求める処理はプログラミングにおいて頻出します。 C#のLINQ(Language Integrated Query)が提供するAverageメソッドを使... -
C#樹林
【C#】LINQのMinとMaxメソッド:コレクションの最小値・最大値を求める方法と計算式の活用
コレクション内の最小値・最大値の取得 データの分析や処理において、「リストの中で最も高い数値」や「最も古い日付」を取得する操作は頻繁に行われます。 C#のLINQ(Language Integrated Query)が提供するMinおよびMaxメソッドを使用すると、単純な数値... -
C#樹林
【C#】LINQのSumメソッド:配列やリストの合計値を算出する方法と応用
コレクションの集計処理 業務アプリケーションにおいて、売上の合計、テストの総得点、在庫数のカウントなど、データの「合計値」を求める処理は頻出します。 foreachループを使用して加算処理を実装することも可能ですが、C#のLINQ(Language Integrated ... -
C#樹林
【C#】LINQのCountメソッド:全要素数や条件に一致する要素数を取得する方法
コレクションの要素数を数える C#で配列やリストなどのコレクションを扱う際、そこに「データが何件あるか」を知ることは最も基本的な操作の一つです。 配列には.Lengthプロパティ、List<T>には.Countプロパティがありますが、LINQ(Language Integr... -
C#樹林
【C#】LINQのPrependとAppend:シーケンスの先頭・末尾に要素を追加する方法
コレクションへの要素追加(非破壊的アプローチ) C#で配列やリストに要素を追加する場合、List<T>.Addメソッドを使用するのが一般的です。しかし、この方法は「元のリストを直接変更する」ため、元のデータを保持したまま新しいシーケンスを作りた... -
C#樹林
【C#】LINQのOfTypeメソッド:コレクションから特定の型の要素だけを安全に抽出する方法
異なる型が混在するコレクションの処理 C#は静的型付け言語ですが、object[](オブジェクト配列)や、古いArrayList、あるいは基底クラスのリストなど、異なるデータ型の要素が混在しているコレクションを扱う場面が存在します。 そのようなコレクションか... -
C#樹林
【C#】LINQでデータを並べ替える:OrderByとThenByによる複数条件ソート
データの並べ替え(ソート) 配列やリストなどのデータを扱う際、「数値を小さい順に並べる」「日付の新しい順に表示する」といった並べ替え(ソート)は、最も基本的かつ重要な操作の一つです。 C#のLINQ(Language Integrated Query)を使用すると、SQL... -
C#樹林
【C#】LINQのReverseメソッド:シーケンスの要素を逆順にする方法とList.Reverseとの違い
データの順序を反転させる C#で配列やリストなどのコレクションを扱う際、「データを末尾から先頭に向かって処理したい」や「時系列データを新しい順(降順)に並べ替えたい」といった場面があります。 LINQ(Language Integrated Query)のReverseメソッ... -
C#樹林
【C#】LINQのDistinctとDistinctBy:配列やリストから重複する要素を削除する方法
重複データの排除 データベースから取得したデータや、ユーザー入力値をリスト化する際、同じ値が複数回含まれる「重複」が発生することがあります。集計処理や一覧表示を行う前には、これらを一意(ユニーク)な状態に整理する必要があります。 C#のLINQ...