c#

.NET Core - Type.IsAssignableFromのメモ

Type.IsAssignableFromは「メソッドを呼び出すインスタンス型の変数」に「メソッドの引数で指定した型のインスタンス」を割り当てることができるかどうかを判断します。 このメソッドはあるインターフェイスを実装しているか?あるクラスを派生しているか?…

LINQ - シーケンスの最初(最後)に要素を追加する

今さら感いっぱいですが、気づいたらEnumerableに次の拡張メソッドが追加されていました。 Enumerable.Prependメソッド シーケンスの最初に要素を追加する Enumerable.Appendメソッド シーケンスの最後に要素を追加する 今まではちょっと微妙かなと思いつつ…

Getterのみ自動実装プロパティの初期化子のメモ

c#

うっかりやってしまいそうだなと思ったのでサンプルを残しておきます。 C# 6.0からの機能に 自動実装プロパティの初期化子(Getterのみの自動実装プロパティ) ラムダ式本体によるプロパティの記述 があります。 使う側からするとどちらも同じGetterプロパテ…

数値や文字列を右詰して前を「0(ゼロ)」で埋める(C#)

c#

C#の小ネタです。まぁいつも小ネタですが。 数値や文字列を右詰(右寄せ?)して前を「0(ゼロ)」で埋めた文字列を作ります。 数値の右詰と0埋め 数値の場合はstring.FormatメソッドかToStringメソッドで標準の10進数"D"数値書式指定を使います。"0"カスタ…

FlagsAttributeを指定したenumの文字列

c#

ものすごく小ネタですが、FlagsAttributeを指定したenumの文字列表現はどうなるんだろ?とふと気になって試してみました。 // トッピング [Flags] public enum Toppings { None = 0x00, // なし Nitamago = 0x01, // 煮卵 CharSiu = 0x02, // チャーシュー M…

LINQ - 空のシーケンスでMin/Max/Averageを使ったときのメモ

LINQで空のシーケンスに対してMin/Max/Averageを使うとInvalidOperationExceptionが発生する場合があります。言われるとそっかと思うんですが、SQLの感覚もあってかうっかりやっちゃうかなあと思ったのでちょっとメモしておきます。 たとえば、intの空のシー…

LINQでn個ずつグルーピング

前に少し考えたときは思いつかなかったのですが、今日ふと思い立って書いてみました。 コレクションの要素を5個ずつでグルーピングするサンプルです。 static void Main(string[] args) { var letters = "abcdefghijklmnopqrstuvwxyz".ToCharArray(); Consol…

LINQでクロス結合

クロス結合(CROSS JOIN)はLINQを使ってどうやって書くんだろうと気になったので調べてみました。 SQLでもほとんど使わないのでC#でもほとんど使わないとは思いますが・・・。重複ありのすべての組合わせを出したいときに使えるかなーと思います。まぁほと…