アルゴリズムから始める C# 入門
C# を使ってアルゴリズムとデータ構造を TDD で学ぶシリーズです。
章構成
第 1 部: 基本
第 2 部: データ構造
第 3 部: ソートと文字列
第 4 部: 高度なデータ構造
実装コード
実装コードは apps/csharp/ にあります。
環境
- .NET: 8.0
- テストフレームワーク: xUnit
- Nix devShell:
.#dotnet
# テスト実行
nix develop .#dotnet --command bash -c "cd apps/csharp && dotnet test"
C# の特徴
Java 版と比較した主な相違点:
| 概念 |
Java |
C# |
| スワップ |
tmp = a; a = b; b = tmp; |
(a, b) = (b, a);(タプル分解) |
| ジェネリクス |
List<T> |
List<T>(同様) |
| 例外クラス |
内部クラス |
内部クラス(同様) |
| コレクション操作 |
Stream API |
LINQ |
| null 安全 |
Optional |
nullable 型(T?) |
| プロパティ |
getter/setter |
{ get; set; } |
参考文献
- 『新・明解 Python で学ぶアルゴリズムとデータ構造』 -- 柴田望洋
- 『テスト駆動開発』 -- Kent Beck