16
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita内のC#erのための有用な記事リファレンス(年代別)

Last updated at Posted at 2025-07-19

個人的まとめ記事
そのうちフルコンプする予定

  • とにかく手当たり次第にC#を学びたい人向け
  • 古い情報を漁りたい方向け
  • 公開ストックとしても作成予定。
  • 収録した記事には以下の内容を含む
    WPF関連, RX,Winform関連,Linq,Unity
    → その他難解なアルゴリズムやあまり知られていない用語を含む
  • 古い記事なので、現在のC#バージョン(.net 9.0以降)ではより効率よく書き直せる場合が多い。
  • 記事内には若干の誤りを含む可能性がある。
  • いいねが少ないものはかなり難解。
  • 特に応用性に富む記事は私的に💡マークとして評価した。
  • 記事の内容がオリジナルかどうかは検証していない
  • この記事の内容は自由に再編集して構わない(例えばWPFとして再分類して良い)
    → 収録した記事に関しては必ずしもその限りではないが、十分許容されるものと信じる次第である
  • Qiita内の記事のみを含める
  • 個人的に調べた事を注釈として書いている※1
  • アカウントは放置されて久しい物が多い模様
  • 内容を深堀りしてほしい場合はいいねかストック。 内容はコメントへ※2。

$\color{gray}{\tiny \textsf{※1収録しているものは独断と偏見に基づいており、全ての記事を含めているわけではない。}}$

$\color{gray}{\tiny \textsf{※2 気が向いたら応じる}}$

そのうち誰かがAPIで作ったりするのかもしれない

ワタシは生成AIで意味を解説させてますが、ググっても出ないものがあるので一部の意味だけを含めています(詳しく知りたい場合は各自で研究すること)

2012年

C#でFizzBuzzをば

https://qiita.com/Kokudori/items/889d1531b9c635c64668
Ling の基礎的な使い方。Rangeメソッドから

enumの項目数を取得する

GPUIDを生成する

1月、2月…をJan. Feb. ...に変換する

コンテナに格納したコントロールを取り出す順序

https://qiita.com/kazuhirox/items/788508b5dc9546ae9ef0
winform向け

.Net + SQL Serverでテストデータを準備する方法

リフレクションで静的クラスのプロパティを取得

💡コンスセルのリストで再帰版直積

https://qiita.com/matarillo/items/90b4ff8061a3608c4428
コンスセルとは?

「コンスセル」はリストの先頭の要素と残りのリストを持つ構造体

関数型プログラミングの基本的なリストの形で、再帰処理に便利

C#で実装することで、不変で扱いやすいリスト操作ができる

💡コンスセルや再帰を使わずに直積

C#って普通に#if true とか #define とか使えるんだね。

既存のDataGridViewの列を持ったDataGridViewRowを作成する

https://qiita.com/satrex/items/7171d71461e3cb147b75
Winform向け。

生&死=?

https://qiita.com/jumboly/items/d89e704a59ebd6404af8
→ 文字コードが偶然ある文字になることを利用したお遊び。

個数の異なる二つのリストをカンマ区切りで縦に結合する

https://qiita.com/kazuhirox/items/96d2793ae9666eff88d8
→ 要素数が同じか短い方だけ必要ならLinqのZipメソッドが簡潔

💡C#でvar_dump

https://qiita.com/rev84/items/2722096a1adedcdf0bbf
PHPのvar_dumpをC#的に実装したもので、オブジェクトの中身を簡単に再帰的に確認したい場合に便利

コルーチンの中で、更にWWWなどを使うメソッドを呼び出したい場合。

https://qiita.com/shinobu_shiva/items/9e71f4185e7cc01790ef
Unity向け。

重い処理の実行中にプログレスバー{IsIndeterminate=True}付きウィンドウを表示する

LINQでParserモナド

https://qiita.com/matarillo/items/d83a6961243e7c2848ee
HaskellのParserモナド等

モナドは関数型言語で副作用の管理や計算の連結を抽象化する仕組み。

「値を包むコンテナ」のようなもので、コンテナの中の値に対して連続的に処理をつなげていく方法を提供する。

2次元配列を列で取り出して演算する

https://qiita.com/kazuhirox/items/62b46b4889c4d5896a6d
C# 9以降ではdouble型を省略してNew出来る。

LINQを使って、指定個数ランダムで取り出すには

💡P/Invoke で __in_opt の引数を wrap するクラス

https://qiita.com/AsladaGSX/items/9f911a91bcd3897fc650
C# から Win32 API を P/Invoke で呼び出す際、__in_opt 引数(NULL 指定可能なポインタ)をスマートに扱う方法を解説
__in_opt 引数を持つWin32 APIは多数ある。

Formのローカリゼーションを一括切り替え

https://qiita.com/krsak/items/79983222c55feed78f0d
Winform向け。WPFではXAMLによるBindingが主流

💡メモリを節約して1000000番目の素数を求める

https://qiita.com/matarillo/items/1f7af38b7c9f26de5079
エラトステネスの篩と呼ばれるアルゴリズムの使用例。

  • 範囲が大きく、メモリ確保が困難な場合 CompositeTableなど動的管理が有利
  • 範囲が小さい・固定の時 は配列が有利
    -「配列を使ったエラトステネスの篩」は高速で単純、メモリ使用量は範囲に直結して増加。
  • 関連 Qiita記事エラトステネスの篩を使って素数を求める

LINQで7クイーン(書類選考無し&高級うなぎGET)

https://qiita.com/matarillo/items/55f05087507e6b05ded5
構造体は色々と振舞いを持たせられる事を知った。

💡Log4Net を利用してログを記録する

https://qiita.com/rohinomiya/items/2b86c4e8d5afd5c2fb39
WPFでも問題なく使用可能とのこと。

→インストール方法:【C#, log4net】log4netを使う

Log4NetのNullオブジェクトを定義してNullチェックを不要にする

💡try ~ catch で捕捉されてない例外をUnhandledExceptionで補足する

https://qiita.com/rohinomiya/items/c7f69713654c47f6c7cd
ちなみにVisual Studioの設定で、指定した例外を捕捉することも可能である

「filterM で powerset」をC#らしく

powerset(べき集合)というのは、すべての部分集合を集めた集合。

NDesk.Options を使ってコマンドライン解析を楽にする

C# から、Growlを利用する

https://qiita.com/rohinomiya/items/7b1ad2bae9aeb26fce5
古いので非推奨

Rxを使って、LocationChangedイベントを捕まえる --泣きながらC#

Rx(Reactive Extensions)とは、イベントや非同期データをLINQのようにストリーム(データの流れ)として扱えるライブラリ。

WPFに外部アプリ(Window)を埋め込む

数値文字列を指定桁で0埋めするにはString.PadLeft(桁,'0');

指定回数処理を繰り返すメソッド(拡張メソッド)

ForEach()メソッドをシンプルに書けるようにする

array(配列)に対する拡張メソッド

C#で可変長引数を使うには params

Quine(クワイン、自己言及プログラム)

https://qiita.com/matarillo/items/c5c804329c92c11c2529
ひろゆきが言及していたらしい

C# + LINQ でJSONのパースをする

https://qiita.com/numa08/items/475ab3e8aa9e10441a26
Jsonの深い構造の抽出を上手く書いている。

enumの文字列表現を定義する

https://qiita.com/kazuhirox/items/d4f2ea04f81bf3da613c
UI表示や多言語化に応用が利く

num < .Count()ではなく.Skip(num).Any()の勧め

POCOでDBの型を指定する

POCO(ポコ)とは "Plain Old CLR Object" の略で、
ごく普通のC#のクラス」を意味する。

意味が分かる人がいるのか???

💡イテレーター非同期

https://qiita.com/matarillo/items/b51d39afebb115a19f0f
難解だが有用な記事
→AIによる解説
・明示的な継続渡しモデルによる非同期制御
・通常のasync/await方式より柔軟性が高い(らしい)
→実際の使用例は要望があれば記事化するかもしれない

既存DLL配布モジュールで発生する PInvokeStackImbalance の回避

.NETでアンマネージコードを呼び出す(P/Invoke)際、関数の呼び出し規約が一致していない場合などに起こるエラー
C#の記事とは言えない。

EnumerableEx.Generateを使う際の注意点

https://qiita.com/Tokeiya/items/5f7295e73d3cde646352
後置インクリメント(i++)を初めて知った件。

Windows のワイルドカード文字列を正規表現に変換するメソッド

https://qiita.com/AsladaGSX/items/5d109cdfb9519e142ad3
→ Windowsのファイル名パターンを正規表現で使いたい時

以下未整理

評価次第ではListに含めない

赤黒木+graphivizによる可視化
https://qiita.com/oskimura/items/117a833226d0ec924944

https://qiita.com/nicklegr/items/d3e97d6910a1353ff45b
Winform向け

https://qiita.com/rohinomiya/items/6bca22211d1bddf581c4
もう知ってるから個人的にはどうでもいい
基本的にコンストラクタでやってる

https://qiita.com/krsak/items/75a257cc0866a7e8e4aa
ツールとしては古い

https://qiita.com/nicklegr/items/faefb804697a395b148d
この方法はWindows内のusers.Appフォルダ内に保存されてしまうので、何となくお勧めしない(アクセス性が良くないから)。まあせいぜい数十kb程度だと思われるが。個人的にはiniJsonの方が好き。

2012年度の(たぶん)有用な記事は以上になります。

あとがき

・・・・・・・・・疲れた。
2012年だけでこれだけの学びがある💧

AI生成に頼るだけの 底辺Coder AI駆動開発には限界があります。学ぼう。

$\color{gray}{\tiny \textsf{学習データ増えただけなのを性能が強化されたとか言ってるのウケる。}}$

宣伝

WPFでVisualStudioライクなSpellCheckerを自作した話

nugetで2000ダウンロード行きました。

image.png

16
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?