LINQなら配列やリストをWhereで簡潔に絞り込めます。 クエリ構文とメソッド構文が選べ、条件はラムダ式に論理演算子を重ねるだけ。 OrderByなどと連結すれば抽出から並べ替えまで一気に記述でき、読みやすさと保守性が高まります。 LIN
続きを読む »C#で拡張子を大小区別なく扱うには、Path.GetExtensionで取り出した文字列をstring.Equals(拡張子, ".txt", StringComparison.OrdinalIgnoreCase)のように比較するのがシンプ
続きを読む »LINQを使えばDataTableをスマートに絞り込み、ソート、集計できます。 AsEnumerableで行列を列挙型へ変換し、whereやOrderByで条件指定や並び替え、GroupByと集計関数でグループ処理もスムーズに実装可能です。
続きを読む »ファイルの拡張子はSystem.IO.Path.GetExtensionで取得し、ドット込みで返る点に注意すれば判定は完結します。 大小文字の差異はStringComparison.OrdinalIgnoreCaseで吸収し、許可リストをH
続きを読む »C#でファイル名から拡張子を削除するなら、System.IO.Path.GetFileNameWithoutExtensionが最短ルートです。 フルパスでも直接ファイル名でも使え、返り値は拡張子なしの文字列。 バージョンやOSに依存せず、
続きを読む »C#の抽象メソッドは本体を持たず、戻り値の型だけを宣言して派生クラスに実装を委ねます。 基底で戻り値が統一されるので呼び出し側は抽象型のまま安全に受け取れ、実行時はオーバーライドされた内容が返ります。 派生側はoverrideで型を変えずに
続きを読む »ファイル拡張子はPath.GetExtensionで取得し、StringComparison.OrdinalIgnoreCaseで比較すれば大文字小文字を気にせず判定できます。 複数種類ならDirectory.GetFilesとLINQのW
続きを読む »抽象メソッドは基底クラスでシグネチャだけを宣言し、派生クラスでoverrideして具体化する機構です。 基底クラスをabstractにすると直接インスタンス化できず、実装漏れはコンパイルエラーで防げます。 共通APIと多態性を両立しながら、
続きを読む »抽象メソッドはabstractで宣言し、派生クラスがoverrideで必ず実装する仕組みです。 呼び出し時は抽象型の参照から行い、実際に動くのは生成した派生オブジェクト側の実装です。 同一APIで振る舞いを切り替えられるため、多態性を活かし
続きを読む »抽象メソッドは基底クラスで引数付きシグネチャだけを提示し、具象クラスにoverride実装を強制する機構です。 これにより引数の型や数が統一され、呼び出し側はポリモーフィズムを安全に享受できます。 基底クラスはabstract指定が必須でイ
続きを読む »抽象メソッドを使うと、派生クラスに実装を強制できるためインターフェースが統一されます。 共通処理は基底クラスにまとめ、差分だけを各クラスへ書けるので重複を減らし保守が楽です。 新しい派生型もシグネチャを守るだけで追加でき拡張がしやすいです。
続きを読む »C#の抽象クラスはPascalCaseで記述し、抽象であることを明示するためにAbstractやBaseを付けると保守しやすいです。 例としてAbstractRepositoryやUserServiceBaseなど。 インターフェースと混同
続きを読む »まずC#では、Encoding.GetEncoding("Shift_JIS")でSJISのバイト列を文字列に戻し、続いてEncoding.UTF8.GetBytesでUTF-8のバイト列へ再エンコードすれば変換が完了します。 逆方向もエン
続きを読む »C#でJSONとCSVを変換するなら、Newtonsoft.Jsonでパース・シリアライズし、CsvHelperで読み書きする組み合わせが最も手軽で柔軟です。 JSON→CSVはネストをフラット化してヘッダーを生成し、CSV→JSONはパス
続きを読む »Path.ChangeExtensionでファイルパスに新しい拡張子を安全に付与できます。 空文字で削除、nullで維持も可能です。 File.CopyやFile.Moveと組み合わせれば変換後のコピーや移動が手軽に行えます。 競合や上書き
続きを読む »結論、最短手順はNewtonsoft.JsonのJsonConvert.DeserializeObject<DataTable>()でJSON文字列をそのままDataTableへ変換し、戻す際はJsonConvert.Seria
続きを読む »ファイル名だけ拡張子を変えたいならPath.ChangeExtensionで即対応できます。 ただしJPEGをPNGにするなど実データを変換する場合はImage.Saveや外部ライブラリで再エンコードが必要です。 大量ファイルを扱うときはD
続きを読む »結論、C#で扱う主な拡張子はソースを記述する.cs、ライブラリをまとめた.dll、アプリを起動する.exe、デバッグ用.pdbに加え、設定の.config、リソースの.resx、プロジェクト管理の.csprojと.slnです。 用途ごとにフ
続きを読む »C#の文字列は\nや\"などのエスケープシーケンスで改行・特殊文字を埋め込みます。 ただしバックスラッシュが増えると読みづらくなります。 @を付けた逐語的リテラルなら\をそのまま書けるためファイルパスや複数行のテキストに最適です。 さらに$
続きを読む »