【Twitter】古いいねの消し方

注意: 全体的に Twitter の挙動が意味不明なせいで記事の内容も良く分からない感じになってます。こんな事もあるんだなー程度で読んでください。 Twitter の古いいねの消し方です。何年も前の数万件もいいねがある場合、Twitter の動きがかなり変なので作業…

ObservableCollectionの変更イベントの挙動を確認する

ObservableCollection は List に似た機能を持ってるクラスで、要素を追加したり削除したときにイベントが発生する機能を持つクラスです。この発生するイベントは、WPF とか UWP みたいな XAML 環境は MVVM が標準でサポートされているので、各コントロール…

PowerShellからC#を実行する

PowerShell 構文を使って .NET のライブラリ使いながらスクリプト書と多少面倒な時があり C# で書けないかと思ったのでそのやり方の紹介です。PowerShell の中で C# のコードを書いてスクリプトを実行する方法の紹介です。 また別のところで作成した .NET の…

【C#】リフレクションでオブジェクトの値を列挙する

C# のリフレクションという機能を使用して任意の型の内容、public なフィールドとプロパティをすべて列挙してみようと思います。 リフレクションを使用するので、特定の型のメンバーを認識したうえでフィールドやプロパティの名前を指定して列挙するのではな…

【C#】SQLiteでクエリー結果の列名を取得する

SQLを発行した結果の列名を取得する方法です。 DbDataRecordからSchemaInfoを取得して列名と型を取得しようと思います。 C#でSQLをダイレクトに実行する場合、コネクションを取得しコマンドを発行した後、SqliteDataReader で結果を読み取るのが一般的です。…

ラムダ式はデリゲート型ではないためDelegate型に変換できません

Windows フォームなんかの古いライブラリで引数が Delegate のメソッドにラムダ式を書いたりすると「ラムダ式 はデリゲート型ではないため、'Delegate' 型に変換できません。」と怒られます。 // こんな風に書くと怒られる public partial class FormMain : …

【C#】ファイルダウンロード時の連番のファイル名を作成する

よくブラウザでファイルをダウンロードしたときに既にそのファイルがあった場合、末尾に(1)、(2)...という風に連番が付いた別のファイルが作成されます。 // こんな風に連番が自動的に作成される Sample.zip Sample (1).zip Sample (2).zip これを C# で同じ…

【C#】再帰構造を別の再帰構造に変換する

あるオブジェクトが自分自身をメンバーに持つ、子要素を無限に繰り返して持てる構造を再帰構造とか再帰データと言います。 // 自分自身をメンバーにもつ構造 ClassA + ClassA + ClassA + null // 終端はnull こういう再帰構造をもつオブジェクトを別の再帰構…

【C#】ZipArchiveでフォルダを扱う

.NET の Zip を扱うための ZipArchive クラスってファイルを zip に追加するための「CreateEntryFromFile」はありますが、フォルダを扱う「CreateEntryFromDireocty」みたいな操作はありません。 普通に使用したらすぐ必要になるので、ZipArchive でフォルダ…

【ASP.NET】大容量ファイルのダウンロード&C#での保存方法

C# の ASP.NET Web API で大容量ファイルをダウンロードする方法です。 ファイルの内容全てbyte配列としてメモリ上に展開しクライアントに応答するとファイルの内容分のメモリがリクエストごとに必要になります。ある程度のサイズなら問題にならない事もあり…

明示的なインターフェイスの実装の使いどころ

C# には「明示的なインターフェースの実装」という言語仕様があります。 使い方 使い方はシンプルに以下の通り。 同じメソッドを持つ複数のインターフェースの実装を別々に実装することができます。 // 同じ名前を持つ2つのインターフェース public interfac…

.NET 6でWindowsサービスを作成する

.NET6 でWindow サービスを作成する方法の紹介です。 確認環境 作成と動作確認環境は以下の通りです。 .NET6 VisualStudio 2022 Windows11 プロジェクトの作成と準備 まず「ワーカーサービス」プロジェクトを「MyService」という名前で作成します。今回はト…