C#– tag –
-
C#
C# 文字列結合のパフォーマンス完全比較(+ / Concat / StringBuilder / Format / 補間)
みなさんこんにちは!ヒロポンです!! 今回は業務SE現場でガチで踏みやすいやつ!!の話。 「DataTableからCSV吐く処理をresult += line + "\n"で1万件ループしたら、画面が固まった」「ログを+=で組み立てたら本番でメモリ爆発した」みたいな... -
C#
C# ファイルIO の正解 — StreamReader / File.ReadAllLines / File.ReadLines / using の使い分け
みなさんこんにちは!ヒロポンです!! 今回はC#業務SE現場でガチで踏みやすいやつ!!の話。 「CSV取り込みバッチを書いたら改行コードの違いで全行が1行に化けた」「Shift-JISの取引先データを読んだら文字化けで??????だらけ」「File.ReadAllLinesで1GB... -
C#
WinForms で UseWaitCursor が戻らないバグの解決法(業務SE目線)
みなさんこんにちは!ヒロポンです! 今回はWinForms業務系の現場でガチで踏みやすいやつ!!の話。 「Cursor.Current = Cursors.WaitCursorを入れたのに砂時計が出ない」「処理は終わってるのに矢印に戻らない」「スピンする間だけチラついて結局矢印のま... -
C#
SQL Server の DBNull を C# で安全にハンドリングする5つのイディオム
SQL ServerのDBNullをC#で安全にハンドリングする5つのイディオム みなさんこんにちは!ヒロポンです!! 今回は業務系のC#でガチで踏みやすいやつ!!の話。 朝、客先で席に着いてOutlookを開いた瞬間、「また昨日のバッチが落ちてます」と肩を叩かれる、... -
C#
C# DataTable を LINQ でフィルタ・GroupBy・分割する3パターン
C# DataTableをLINQでフィルタ・GroupBy・分割する3パターン みなさんこんにちは!ヒロポンです!! C#のDataTableいじってると、「これLINQで書きたい」って思った瞬間にコンパイルエラーで止まる、ってこと、ないっすか?? // ❌これは動かない var act... -
C#
C# OpenFileDialog をフォームのフィールドにする時の正しい書き方
C# OpenFileDialogをフォームのフィールドにする時の正しい書き方 みなさんこんにちは!ヒロポンです! C# WinFormsでファイル取り込み機能を作る時、OpenFileDialogをどう持つか、毎回ちょっと迷うこと、ないっすか? //多くの人がこう書いてる(俺も最初... -
VB.NET
VB.net の Right / Mid / Left を C# に翻訳する完全早見表
VB.netのRight / Mid / LeftをC#に翻訳する完全早見表 VB.netの既存資産をC#に移植する案件で、最初の地雷はだいたい文字列関数だ。Right(s, 3)を「右から3文字でしょ?」とs.Substring(s.Length - 3)に直接置き換えて、後で「文字数より大きい長さを渡し... -
C#
C# でリストの重複を一意にする3つの書き方(Distinct / GroupBy / HashSet)
C#でリストの重複を一意にする3つの書き方(Distinct / GroupBy / HashSet) DataAdapterで取ってきたDataTableをList<T>に詰め替えて、画面に表示するためにマージしたら同じ顧客IDが2回出てくる ──。業務系でListの重複を取り除く処理は、毎週のよ... -
C#
C# Interface の継承判定と暗黙キャストの定石(is / as / 暗黙キャスト 3パターン)
みなさんこんにちは!ヒロポンです! 今回はC#業務系でInterface触る時にガチでよく迷うやつ!!の話。 DataAccess層を抽象化したくてIDataLoaderみたいなInterfaceを切ったはいいけど、「呼び出し元でis使うべき??それともas??それとも普通に(IDataLo... -
C#
C# Linq で Null を回避する書き方とパフォーマンス(業務SEのコピペで動くやつ)
みなさんこんにちは!ヒロポンです! 今回は業務SE現場でガチで踏みやすいやつ!!の話。 「DataTableからList<T>に積んでLinqでフィルタかけたら、NullReferenceExceptionで落ちた」「Where書いたのに件数が合わない」「First()とFirstOrDefault()...
