[C#] Linqの演算で和集合, 差集合, 積集合 を求める方法
C# で集合(コレクション)に対して演算を行う C# では Linq を使って、集合に対する演算を行えます。よくベン図で表現されるようなやつを C# で表現できます。 例えば2つの集合を足し合わせた集合を作ったり(和集合)、2つの集合両方に含まれる要素からなる集合を作ったり(積集合)ができます。 ここでは和集合、積集合、差集合を求めてみます。 和集合(Union) いずれかに含まれる 集合 x と […]
Web備忘録 プログラミングを中心に技術的な事柄を忘れないように書き残します。
C# で集合(コレクション)に対して演算を行う C# では Linq を使って、集合に対する演算を行えます。よくベン図で表現されるようなやつを C# で表現できます。 例えば2つの集合を足し合わせた集合を作ったり(和集合)、2つの集合両方に含まれる要素からなる集合を作ったり(積集合)ができます。 ここでは和集合、積集合、差集合を求めてみます。 和集合(Union) いずれかに含まれる 集合 x と […]
文字列を逆順に反転して並べ替える方法 C#, VB.NET で文字列を逆順に反転させる方法をまとめます。 まず、Linq で Reverse() というコレクションを逆順にするメソッドがあります。これを文字列に対して使うことで逆順の IEnumerable<char> が得られます。 逆順のデータが得られたらあとはそれを文字列にするだけです。 得られたデータを配列にしてから new s […]
C# でランレングス圧縮 連長圧縮 – Wikipedia C# で ランレングス圧縮 を実装してみます。ランレングス圧縮についてはWkipediaを引用すると以下のようなものです。 連長圧縮は、データ圧縮アルゴリズムの一つで、可逆圧縮に分類される。ランレングス圧縮、RLE (Run Length Encoding) とも呼ばれる。 連長圧縮では、ある連続したデータを、そのデータ一つ分 […]
C# で複数のコンストラクタを呼び出す方法 [コンストラクターの使用 – C# プログラミング ガイド | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/using-constructors* C# でコンストラクタを複数呼び出す方 […]
連結リストを自前で実装する 連結リストとは 連結リスト – Wikipedia 連結リスト (Linked List) とは基本的なデータ構造の1つです。配列のようなインデックスで順序が決まるのではなく、各オブジェクトが持つポインタによって順序を決めるデータ構造です。 連結リストにはいくつかの種類があります。一方向と双方向、循環と非循環などです。今回実装していくのは 双方向連結リスト […]
Stack, Queue を自前で実装する C# の場合、データ構造の Stack と Queue は標準ライブラリで提供されますが、自前で実装して理解を深めようと思います。 順番に見ていきます。 Stack (スタック) スタック – Wikipedia Stack は先入れ後出し(FILO)を実現するためのデータ構造です。 Stack は、データを入れる Push と積まれたデータ […]
挿入ソート 挿入ソートを C#, VB.NET で実装してみます。 挿入ソートは、時間計算量 O(n^2) でバブルソートや選択ソートと同じく高速なソートアルゴリズムとは言えません。ただし、挿入ソートについて言えばある面で有用なソートアルゴリズムです。 挿入ソートは要素数の少ないデータに対して、効率よくソートするアルゴリズムです。 クイックソートなど高速なソートアルゴリズムについては、処理のオーバ […]
C#(VB.NET) でフォルダを中身ごとコピーしたい .NET では中身の入ったフォルダのコピーは用意されていません。したがって自分で作ってやる必要があります。 以下実装です。 C /// <summary> /// ディレクトリの中身をコピーする /// </summary> /// <param name="sourcePath">コピー元パス</p […]
リクエストを受けたコントローラーとアクションを取得したい ASP.NET MVC でリクエストを受けたコントローラー名とアクション名を取得する方法をまとめます。 RouteData から取り出す RouteData インスタンスからルーティングに関する情報を取得できます。RouteData.Values がディクショナリになっていて、この中にルーティングに関する情報が入っています。 control […]
C# のタイマーで指定時間間隔で処理を行う Timer を使うことで指定時間間隔で任意の処理を行うことができます。 Timerの種類 C#には複数のタイマーがあります。Threading.Timer と Timers.Timer です。 他にも GUI用のタイマーとして、Forms.Timer と DispatcherTimer というものもあります。それぞれ WindowsFrom と WPF […]