目次
Chapter 1 基本文法
- 001 様々な型のローカル変数を宣言したい
- 002 constキーワードで定数を利用したい
- 003 文字列リテラルで改行コードやタブコードを記述したい
- 004 逐語的リテラル文字列を利用したい
- 005 文字列補間を使い文字列を整形したい
- 006 if文で条件分岐処理を書きたい
- 007 if文で多分岐処理を書きたい
- 008 switch文で多分岐処理を書きたい
- 009 AND ORなどの条件論理演算をしたい
- 010 条件に応じて値を変えたい(条件演算子?:)
- 011 ある値を他の型に型変換(キャスト)したい
- 012 for,while,do-while文で繰り返し処理を記述したい
- 013 foreachでコレクションの要素を順に処理したい
- 014 繰り返しの途中で処理をスキップし次の繰り返しに移りたい
- 015 繰り返し処理を中断したい
Chapter 2 数値演算
- 016 数値の加減乗除および剰余を求めたい
- 017 インクリメント演算子(++),デクリメント演算子(--)を使いたい
- 018 intやdoubleの最小値,最大値を求めたい
- 019 絶対値を求めたい
- 020 べき乗を求めたい
- 021 切り捨て,切り上げをしたい
- 022 指定した位置で切り捨て,切り上げをしたい
- 023 四捨五入したい
- 024 数値演算時のオーバーフローを検知したい
- 025 ふたつの浮動小数点数が等しいか比較したい
- 026 ランダムな値を生成したい
- 027 ビット演算をしたい
- 028 Nビット目をOn/Offしたい
- 029 Nビット目の状態を調べたい
Chapter 3 文字列処理
- 030 文字列を数値に変換したい
- 031 数値を文字列に変換したい
- 032 書式を指定して整数を文字列に変換したい
- 033 数値を桁数を指定して文字列化したい
- 034 文字列がnullまたは空文字列であるか調べたい
- 035 文字列の中に指定した部分文字列があるか調べたい
- 036 文字列が指定した文字列で開始/終了しているかを調べたい
- 037 ふたつの文字列の先頭N文字が一致しているかを調べたい
- 038 大文字小文字を区別せずにふたつの文字列を比較したい
- 039 文字列の両端にある空白を取り除きたい
- 040 文字列の中で指定した部分文字列が最初に現れる位置を求めたい
- 041 文字列から部分文字列を取得したい
- 042 文字列から指定した範囲の文字を取り除きたい
- 043 文字列の一部を別の文字列に置き換えたい
- 044 指定した位置に文字列を挿入したい
- 045 文字列を大文字あるいは小文字に変換したい
- 046 文字列の中の各文字を1文字ずつ操作したい
- 047 指定した文字数になるまで文字列の先頭に空白を埋め込みたい
- 048 文字列を指定した区切り文字で分割したい
- 049 StringBuilderを使い複数の文字列を高速に連結したい
- 050 StringBuilderを使い文字列の置換処理をしたい
- 051 文字列補間内でエスケープ文字を無効にしたい
- 052 コレクションの要素を指定した区切り文字で連結したい
- 053 文字列と文字配列を相互変換したい
- 054 文字列とbyte配列を相互変換したい
- 055 サロゲートペア文字に対応した文字列処理を行いたい
- 056 カルチャに依存しない文字列比較を行いたい
Chapter 4 日付時刻処理
- 057 本日の日付や現在の時刻を取得したい
- 058 DateTimeオブジェクトから年月日時分秒ミリ秒を取り出したい
- 059 曜日を取得したい
- 060 N日後,N日前を求めたい
- 061 Nか月後,Nか月前を求めたい
- 062 ふたつの日時を比較したい
- 063 うるう年かどうか調べたい
- 064 1月1日からの年間積算日を求めたい
- 065 指定した月の月末日を求めたい
- 066 ふたつの日時の差を求めたい
- 067 日付文字列をDateTime型に変換したい
- 068 日付,時刻を様々な書式で文字列化したい
- 069 和暦の元号と年を求めたい
- 070 元号を表す序数から元号(文字列)を求めたい
- 071 日付を和暦表示したい
- 072 カルチャを指定して日時を文字列化したい
Chapter 5 コレクション
- 073 配列を利用したい
- 074 コレクションの要素を順に取り出したい
- 075 配列の要素を同じ値で埋めたい
- 076 配列の順序を逆順にしたい
- 077 配列の順序を昇順に並べ替えたい
- 078 Comparison<T>を使用して配列を並べ替えたい
- 079 2次元配列を使いたい
- 080 ジャグ配列を使いたい
- 081 List<T>を使いたい
- 082 List<T>を宣言と同時に初期化したい
- 083 List<T>に複数の要素を一度に追加したい
- 084 List<T>から条件に一致した要素を削除したい
- 085 List<T>の要素の順序を反転させたい
- 086 List<T>の要素を昇順に並べ替えたい
- 087 Comparison<T>を使用してList<T>を並べ替えたい
- 088 List<T>内を高速にサーチしたい
- 089 ForEachメソッドですべての要素を順に処理したい
- 090 List<T>を読み取り専用にしたい
- 091 Dictionary<TKey,TValue>を利用したい
- 092 Dictionary<TKey,TValue>内のすべてのキーを参照したい
- 093 HashSet<T>を利用したい
- 094 HashSet<T>で集合演算を行いたい
- 095 Stack<T>を利用したい
- 096 Queue<T>を利用したい
Chapter 6 クラスと構造体の基礎
- 097 クラスを定義したい
- 098 プロパティを定義したい
- 099 読み取り専用プロパティを定義したい
- 100 プロパティに初期値を設定したい
- 101 バッキングフィールドを利用したプロパティを定義したい
- 102 メソッドを定義したい
- 103 同名のメソッドを複数定義(オーバーロード)したい
- 104 可変長引数を持つメソッドを定義したい
- 105 メソッドを式形式で簡潔に書きたい
- 106 コンストラクターを定義したい
- 107 複数のコンストラクターを定義したい
- 108 クラスを継承したい
- 109 静的クラスを定義したい
- 110 構造体を定義したい
- 111 匿名型を使いたい
- 112 オブジェクトを複製したい
Chapter 7 列挙型
- 113 列挙型を定義したい
- 114 列挙型に定義されている値をすべて列挙したい
- 115 列挙型と数値を相互に変換したい
- 116 列挙型と文字列を相互に変換したい
- 117 指定した値が列挙型で定義されているか判断したい
- 118 Flags属性で列挙型をビットフラグとして扱いたい
Chapter 8 nullを扱う
- 119 null許容値型を利用したい
- 120 null合体演算子でnullのときだけ別の値にしたい
- 121 null条件演算子でnullチェックを省略したい
- 122 null条件演算子とnull合体演算子を同時に使いたい
- 123 null合体割り当て演算子でnullのときに値を変更したい
- 124 null許容参照型を利用したい
Chapter 9 LINQ
- 125 条件に該当する要素だけ取得したい(Where)
- 126 クエリの結果を新しい型に変換したい(Select)
- 127 ある位置までの要素を取得したい(Take/TakeWhile)
- 128 ある位置まで要素をスキップしたい(Skip/SkipWhile)
- 129 最初の要素を取得したい(First/FirstOrDefault)
- 130 最後の要素を取得したい(Last/LastOrDefault)
- 131 指定した位置の要素を取得したい(ElementAt)
- 132 重複する値を取り除きたい(Distinct)
- 133 シーケンスの要素の順序を反転したい(Reverse)
- 134 データを並べ替えたい(OrderBy/OrderByDescending)
- 135 特定の型だけを取得したい(OfType)
- 136 シーケンスの先頭/末尾に要素を追加したい(Prepend/Append)
- 137 シーケンス内の要素数を求めたい(Count)
- 138 合計を求めたい(Sum)
- 139 最小値,最大値を求めたい(Min/Max)
- 140 平均値を求めたい(Average)
- 141 すべての要素が条件を満たしているかどうかを調べたい(All)
- 142 いずれかの要素が条件を満たしているかどうかを調べたい(Any)
- 143 指定した要素がシーケンスに含まれているか調べたい(Contains)
- 144 シーケンスを配列やList<T>に変換したい(ToArray/ToList)
- 145 ディクショナリに変換したい(ToDictionary)
- 146 HashSet<T>に変換したい(ToHashSet)
- 147 指定したキーでグルーピングしてILookup<K,E>に変換したい
- 148 和集合を求めたい(Union)
- 149 積集合を求めたい(Intersect)
- 150 差集合を求めたい(Except)
- 151 指定したキーに基づいて結果をグループ化したい(GroupBy)
- 152 関連のあるふたつのシーケンスをひとつにまとめたい(Join)
- 153 ふたつのシーケンスの要素を関連付けその結果をグループ化したい(GroupJoin)
- 154 階層構造になったオブジェクトのシーケンスを平坦化したい(SelectMany)
- 155 ふたつのシーケンスを連結したい(Concat)
- 156 ふたつのシーケンスの対になる要素をタプルのシーケンスに変換したい(Zip)
- 157 ふたつのシーケンスが等しいかを調べたい(SequenceEqual)
- 158 指定した範囲の数値コレクションを生成したい(Range)
- 159 指定した値を繰り返すシーケンスを生成したい(Repeat)
- 160 特殊な集計処理を行いたい(Aggregate)
- 161 複数のLINQメソッドを連結させたい
- 162 LINQで外部結合を行いたい
Chapter 10 例外処理と後処理
- 163 例外処理を記述したい
- 164 複数の例外に対応したい
- 165 例外情報にアクセスしたい
- 166 例外を発生させたい
- 167 例外を再スローしたい
- 168 例外オブジェクトに独自のデータを追加したい
- 169 InnerExceptionプロパティを再帰的にたどりたい
- 170 独自例外を定義したい
- 171 例外処理で例外フィルターを使い対象例外を絞りたい
- 172 条件演算子やnull合体演算子とともに例外を発生させたい
- 173 try-finallyで確実に後処理をしたい
- 174 using文で確実にDisposeメソッドを呼び出したい
- 175 using宣言を使い,より簡単にusing文を書きたい
Chapter 11 より高度なクラスの定義
- 176 ラムダ式を受け取るメソッドを定義したい
- 177 インデクサを定義したい
- 178 イベントを定義し利用したい
- 179 拡張メソッドでクラスを拡張したい
- 180 LINQ to Objectsに対応した拡張メソッドを定義したい
- 181 演算子をオーバーロードしたい
- 182 独自の型でキャスト式を利用可能にしたい
- 183 動的にプロパティを追加できるdynamicクラスを作りたい
- 184 レコード型で安全性を高めたい
Chapter 12 ジェネリックとインターフェイス
- 185 ジェネリッククラスを定義したい
- 186 ジェネリックメソッドを定義したい
- 187 インターフェイスを定義したい
- 188 インターフェイスに既定の動作を定義したい
- 189 既定のインターフェイスメソッドを上書きしたい
- 190 yield構文を使いIEnumerable<T>を返すメソッドを定義したい
- 191 IEquatable<T>インターフェイスを持つクラスを定義したい
- 192 IEqualityComparer<T>インターフェイスを実装したい
- 193 IComparable<T>インターフェイスを実装し大小比較したい
- 194 IComparer<T>インターフェイスを実装してソートしたい
- 195 IDisposableインターフェイスを実装したい
- 196 オブザーバーデザインパターンを実装したい
Chapter 13 よりスマートにコードを書く
- 197 最上位レベルステートメントを使いたい
- 198 クラス名を省略してメソッドを呼び出したい
- 199 nameof式でシンボルの名前の間違いをなくしたい
- 200 defaultキーワードでオブジェクトの既定値を指定したい
- 201 new式でインスタンス生成のコードを簡略化したい
- 202 out変数で引数宣言を簡略化したい
- 203 メソッド呼び出しで名前付き引数を使用したい
- 204 switch式を利用したい
- 205 switch文のcaseラベルに条件を付加したい
- 206 is演算子でパターンマッチングを使いたい
- 207 ローカル関数を定義したい
- 208 プロパティのgetアクセサー,setアクセサーを式形式で書きたい
- 209 init専用セッターでクラスの安全性を高めたい
- 210 メソッドでタプルを利用しふたつの値を返したい
- 211 配列でより高度なインデックス操作をしたい
- 212 dynamic型を使いたい
Chapter 14 並列処理と非同期処理
- 213 BackgroundWorkerクラスを利用してバックグラウンドで処理を動かしたい
- 214 awaitを使用して非同期メソッドを呼び出したい
- 215 同期メソッドを非同期メソッドに変更したい
- 216 Taskクラスで起動したタスクを最大N秒まで待ちたい
- 217 指定した時間だけ処理を待機させたい
- 218 Taskをキャンセルしたい
- 219 Parallelクラスを使用して並列処理をさせたい
- 220 PLINQで並列処理をしたい
- 221 PLINQで並列処理の結果の順序を制御したい
- 222 PLINQで並列処理の結果に対しても並列処理したい
- 223 PLINQで例外処理を記述したい
- 224 複数のTaskを並列で走らせたい
- 225 lock構文で安全に並列処理をしたい
- 226 フィールドをvolatile宣言して安全に並列処理をしたい
- 227 Interlockedクラスを使用して安全に並列処理をしたい
- 228 並列処理で安全にコレクションにアクセスしたい
- 229 Progress<T>で進行状況を表示したい
Chapter 15 リフレクション
- 230 オブジェクトの型情報を取得したい
- 231 リフレクションを利用しプロパティの値を取得したい
- 232 リフレクションを利用しプロパティに値を設定したい
- 233 指定した型のプロパティの一覧を取得したい
- 234 リフレクションを利用しメソッドを呼び出したい
- 235 指定した型のメソッドの一覧を取得したい
- 236 コンストラクターを動的に呼び出したい
- 237 コンストラクターの一覧を得たい
- 238 現在のクラス名,メソッド名を取得したい
- 239 実行時にオブジェクトの型の種類を調べたい
- 240 プロパティに指定した属性が付加されているか調べたい
- 241 プロパティに付加された属性の値を取得したい
- 242 メソッドに付加された属性を取得したい
- 243 列挙型のフィールドに付加された属性を取得したい
- 244 クラスに付加された属性を取得したい
- 245 オブジェクトのプロパティ名と値をDictionary<TKey,TValue>に変換したい
- 246 文字列プロパティの値がnullならすべて空文字列にしたい
- 247 独自の属性を定義したい
Chapter 16 正規表現
- 248 文字列が指定したパターンと一致するか調べたい
- 249 文字列の中からパターンに一致する箇所をひとつ取り出したい
- 250 文字列の中からパターンに一致する箇所をすべて取り出したい
- 251 正規表現を使い高度な置換処理をしたい
- 252 文字列を指定したパターンで分割したい
- 253 大文字小文字を区別せずマッチさせたい
- 254 複数行モードで正規表現を使いたい
Chapter 17 ファイルとディレクトリ
- 255 ファイルパスを組み立てたい
- 256 パス名を構成要素に分割したい
- 257 相対ファイルパスを絶対パスに変換したい
- 258 ファイルを操作したい
- 259 ファイルの拡張子を変更したい
- 260 ファイルサイズを取得したい
- 261 ファイルの更新日時を取得/更新したい
- 262 ファイルの読み取り専用属性を取得または設定したい
- 263 ディレクトリを操作したい
- 264 指定したディレクトリにあるファイル一覧を得たい
- 265 指定したディレクトリにあるディレクトリ一覧を得たい
- 266 現在の作業ディレクトリを取得したい
- 267 一時的に利用するファイルを作成したい
- 268 特殊なフォルダ名を取得したい
- 269 テキストファイルを読み込みたい
- 270 テキストファイルを作成したい
- 271 テキストファイルに追記したい
- 272 Shift-JISのファイルを扱いたい
- 273 バイナリファイルを読み込みたい
- 274 byte配列のデータをファイルに出力したい
- 275 文字列をStreamとして扱いたい
Chapter 18 Zipファイル
- 276 ディレクトリからZipアーカイブを作成したい
- 277 Zipアーカイブに新しいファイルを追記したい
- 278 Zipアーカイブからファイルを削除したい
- 279 Zipアーカイブファイルに格納されているファイルの一覧を取得したい
- 280 Zipアーカイブ内のファイルをすべて抽出したい
- 281 Zipアーカイブから指定したファイルを抽出したい
Chapter 19 ロギング
- 282 ILoggerでログを出力したい
- 283 appsettings.jsonでログレベルを設定したい
- 284 コードでログレベルを設定したい
- 285 ログ出力でメッセージテンプレートを使用したい
- 286 NLogを使いたい
- 287 Log4Netを使いたい
- 288 ZLoggerを使いたい
Chapter 20 Entity Framework Core
- 289 Entity Framework Coreの利用を開始したい
- 290 Entity Framework Coreでモデルを定義したい
- 291 データベーステーブル間のリレーションを定義したい
- 292 属性を使いエンティティクラスのプロパティに制約を設定したい
- 293 エンティティクラスにデータベーステーブルにマッピングされないプロパティを定義したい
- 294 データベースのテーブル名,カラム名を明示的に指定したい
- 295 エンティティクラスのプロパティで主キーを明示したい
- 296 データベーステーブルのカラムにインデックスを作成したい
- 297 列挙型の値を文字列としてデータベースに格納したい
- 298 データベーステーブルに行を挿入したい
- 299 データベーステーブルから条件に合致した行を取得したい
- 300 データベースから関連するテーブルのデータを取得したい
- 301 データベーステーブルの行を更新したい
- 302 データベーステーブルから行を削除したい
- 303 データベースからデータを読み込まずに更新したい
- 304 EF Coreで生のSQLを発行したい
- 305 EF Coreでトランザクションを制御したい
- 306 EF Coreで更新されないシナリオでパフォーマンスを向上させたい
- 307 EF Coreでオプティミスティック同時実行制御を行いたい
- 308 EF Coreでコマンドタイムアウト値を設定したい
- 309 EF Coreが出力するSQLを確認したい
Chapter 21 ネットワーク
- 310 HTMLをエンコード・デコードしたい
- 311 URLをエンコード・デコードしたい
- 312 JSONシリアライズ,デシリアライズしたい
- 313 パラメーター付きクエリ文字列を組み立てたい
- 314 URLで指定したWebページ(HTML)を取得したい
- 315 Webサーバーからファイルをダウンロードしたい
- 316 指定したURLからJSONデータを取得したい
- 317 HttpClientでContent-typeを指定したい
- 318 HttpClientでリクエストヘッダーにUser-Agentを設定したい
- 319 HttpClientでHTTPステータスコードを確認したい
- 320 HTTPメソッドを指定してAPIを呼び出したい
- 321 HTTP POSTでフォームデータを送信したい
- 322 HTTP POSTでJSONデータを送信したい
- 323 HttpClientFactoryで生成したHttpClientを利用したい
- 324 Http通信のログを出力したい
- 325 メールを送信したい
- 326 添付ファイル付きメールを送信したい
Chapter 22 暗号化
- 327 共有キー暗号方式の暗号化と復号のためのキーを生成したい
- 328 共有キー暗号方式で文字列を暗号化したい
- 329 共有キー暗号方式で暗号化された文字列を復号したい
- 330 共有キー暗号方式でファイルを暗号化したい
- 331 共有キー暗号方式で暗号化されたファイルを復号したい
- 332 公開キー暗号方式で利用する公開キーと秘密キーを生成したい
- 333 公開キー暗号方式の秘密キーをキーコンテナに格納したい
- 334 公開キー暗号方式を使って暗号化したい
- 335 公開キー暗号方式を使って復号したい
- 336 RSA公開キーファイル(PKCS#1)を使って暗号化したい
- 337 RSA秘密キーファイル(PKCS#1)を使って復号したい
- 338 データのハッシュ値を求めたい
- 339 ハッシュ値を使いデータの検証を行いたい
- 340 デジタル署名をしたい
- 341 デジタル署名したデータを検証したい
Chapter 23 ExcelとWord
- 342 [Excel]NPOIを使ってExcelファイルを作成したい
- 343 [Excel]NPOIを使ってセルに値を設定したい
- 344 [Excel]NPOIを使って特定のセルの値を取得したい
- 345 [Excel]NPOIを使ってすべてのセルの値を取得したい
- 346 [Excel]NPOIを使ってセルの値を変更したい
- 347 [Excel]NPOIを使ってセルにスタイルを設定したい
- 348 [Word]OpenXMLでWord文書を新規作成したい
- 349 [Word]OpenXMLで段落の位置揃えをしたい
- 350 [Word]OpenXMLで既存文書に段落を挿入したい
- 351 [Word]OpenXMLで段落にスタイルを適用したい
Chapter 24 単体テスト
- 352 xUnit.netを使いたい
- 353 メソッドが期待した値を返してくるかテストしたい
- 354 指定した範囲に収まっているかテストしたい
- 355 指定した例外が発生するかテストしたい
- 356 テストの前処理を記述したい
- 357 InlineData属性でテストメソッドに渡すパラメーターの値を指定したい
- 358 Member属性でテストメソッドに渡すパラメーターの値を指定したい
- 359 単体テストでデバッグメッセージを出力したい
- 360 [Moq]Moqの利用を開始したい
- 361 [Moq]Mockオブジェクトにプロパティを定義したい
- 362 [Moq]Mockオブジェクトにメソッドを定義したい
- 363 [Moq]Mockオブジェクトに例外を発生させるメソッドを設定したい
- 364 [Moq]Mockオブジェクトでメソッドが呼び出された際の処理を記述したい
- 365 [xUnit][Moq]Mockを使って単体テストを行いたい
- 366 [xUnit][Moq]MockをDIして単体テストを行いたい
Chapter 25 落穂拾い
- 367 byte配列とBase64文字列を相互変換したい
- 368 文字列をBase64でエンコード・デコードしたい
- 369 byte配列を16進表記したい
- 370 どのメソッドから呼び出されたのか知りたい
- 371 OSの情報を取得したい
- 372 論理プロセッサの数を調べたい
- 373 環境変数を取得したい
- 374 現在のプロセス環境ブロックで環境変数をセットしたい
- 375 GUIDを生成したい
- 376 指定した間隔である処理を繰り返し動かしたい
- 377 ある時点からの経過時間を求めたい
- 378 プロセスを起動したい
- 379 起動したプロセスが終了するまで待ちたい
- 380 起動したプロセスの標準出力の内容を取得したい
- 381 標準エラー出力にメッセージを出力したい
- 382 VisualStudioのデバッグウィンドウにログを出力したい
- 383 コンソールアプリケーションで汎用ホストを利用したい
- 384 appsettings.jsonから構成データの値を取得したい
- 385 構成データを環境により切り替えたい
- 参考文献
- Index