C#

into

C#

intoでクエリ結果を一時的に新しい識別子に保存し、それを次のクエリに使える。into - C# リファレンス - C# | Microsoft Learn select 句を重ねるには into を使う。または let 句を使う - C#練習日記MainClass.csで、こうすると、 こうなる。こうなる。Sam…

groupby句

C#

groupby句でグループ化する。group 句 - C# リファレンス | Microsoft LearnBody.csをもとに、Member.csを、こう定義した。 出身地のBirthplaceが今回のポイント。 MainClass.csでは、こう書く。 Birthplaceでグループ化。 result.Count()で、まずはいくつの…

select句での加工

C#

select句には、要素やそのプロパティだけでなく、それらを加工したものも指定できる。クエリ式の基本 (C# での LINQ) | Microsoft Learn LINQ:取得列を明示的に指定する - select句/SelectManyメソッド[C#] - Build InsiderMainClass.csで、p.Nameを、 "…

複合from句

C#

fromで取り出した要素が、またリストのようなシーケンスを持っている場合などでは、fromを複数繋げて内側の要素を取り出せる。クエリ式の基本 (C# での LINQ) | Microsoft Learn from 句 - C# リファレンス | Microsoft LearnCountry.csは、メンバにList<City>を持</city>…

ascending

C#

ascendingを付けた場合は、昇順になる。orderby 句 - C# リファレンス | Microsoft LearnMainClass.csで、"orderby p.Height ascending"とすると、 また昇順になった。また昇順になった。Sample/cs/orderby/ascending/src/orderby at master · bg1bgst333/Sa…

descending

C#

orderby句の一番後ろに、descendingを付けると、降順になる。orderby 句 - C# リファレンス | Microsoft LearnMainClass.csで、"orderby p.Height descending"なので、p.Height(身長)の降順である。 降順になった。降順になった。Sample/cs/orderby/descendi…

orderby句

C#

orderby句で要素をソートする。orderby 句 - C# リファレンス | Microsoft LearnBody.csは、以前のものと変わらない。 MainClass.csは、orderbyだけならデフォルト昇順なので、p.Height(身長)の昇順でソートする。 p.Name(名前)がp.Height(身長)の昇順で取り…

where句

C#

where句で列挙する要素の条件を指定する。where 句 - C# リファレンス | Microsoft LearnBody.csは、以前のものと変わらない。 MainClass.csは、from句とselext句の間に、where句でp.Heightが170以上という条件を追加する。 このように絞り込めた。このよう…

select句

C#

select句で、クエリが実行されたときに生成される値の型を指定する。select 句 - C# リファレンス | Microsoft Learnリストの要素がクラスや構造体なら、取得したいプロパティを指定する。 Body.csは、こう書いて、 MainClass.csは、名前だけ列挙したいので…

from句

C#

C#のLINQは、Enumerable.WhereやEnumerable.Selectなど、メソッドはやっていたが、それ以前の基本的な句に関してはやってなかったので、やっていく。クエリ式の基本 (C# での LINQ) | Microsoft LearnLINQは、基本的にfrom~in~で始まり、select~またはgro…

自動実装プロパティ

C#

ちょっと戻るけど、C#3以降では、プロパティの実装が簡単になっている。自動実装するプロパティ - C# プログラミング ガイド | Microsoft DocsClass1.csが、 // 整数値と文字列を持つクラス class Class1 // Class1クラスの定義 { // プロパティの定義 priva…

async

C#

asyncは、一般のメソッド以外に、匿名メソッドやラムダ式に付ける場合もある。async - C# リファレンス | Microsoft Docs 非同期メソッドの構文(2/3) - @ITawaitを扱った時の最後のコードを見てみる。 // 名前空間の登録 using System; // 共通データ型と…

await

C#

C# 5から、async-await構文が使えるようになった。await 演算子 - C# リファレンス | Microsoft Docs 非同期メソッド - C# によるプログラミング入門 | ++C++; // 未確認飛行 Cawaitを付けた時の動きがわかりにくいので、まとめる。 MainClass.csで、 // 名…

null許容値型

C#

値型はnullを持てないが、null許容値型にすると、有効な値かnullのどちらかを持てるので、値を持っているかnullかをチェック出来る。null 許容値型 - C# リファレンス | Microsoft Docs null許容値型(Nullable&lt;T&gt; 型) - C# によるプログラミング入門 |…

ジェネリクスの反変性

C#

ジェネリクスの反変性は、しっくり来てるような来てないような感じがあるが、ジェネリックの共変性と反変性 | Microsoft Docs ジェネリクスの共変性・反変性 - C# によるプログラミング入門 | ++C++; // 未確認飛行 Cコード的には、 // 名前空間の登録 using…

ジェネリクスの共変性

C#

C#4でジェネリクスにおいても共変性という性質を持てるようになった。ジェネリックの共変性と反変性 | Microsoft Docs ジェネリクスの共変性・反変性 - C# によるプログラミング入門 | ++C++; // 未確認飛行 CITest.csというのを追加し、 // テストインター…

反変性

C#

さらに難しいのが反変性。共変性と反変性 (C#) | Microsoft Docs デリゲート - C# によるプログラミング入門 | ++C++; // 未確認飛行 C引数が派生クラスの関数、引数が基底クラスの関数があった時、派生クラスを受け取る関数のデリゲートに、基底クラスを受…

共変性

C#

説明が難しいのだが、基底クラスを返す関数を入れるデリゲートがあった時、このデリゲートに派生クラスを返す関数を入れることもできる。 このような性質を共変性と言うらしい・・・。 詳しくは、共変性と反変性 (C#) | Microsoft Docs デリゲート - C# によ…

名前付き引数

C#

C#4.0では、オプション引数に加えて、名前付き引数が導入された。名前付き引数と省略可能な引数 - C# プログラミング ガイド | Microsoft Docs オプション引数・名前付き引数 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C引数名を指定できるので…

extern

C#

C++などで書かれた外部ライブラリ(DLL)のメソッドを呼び出す場合に、externでそのメソッドを宣言する必要がある。 DllImport属性と共に使う。extern 修飾子 - C# リファレンス | Microsoft Docs Win32 APIやDLL関数を呼び出すには?:.NET TIPS - @IT空のプ…

クラスライブラリファイルの静的リンク

C#

DLLを参照する方法以外に、クラスライブラリのファイルを静的にリンクするという方法がある。クラスライブラリの静的リンクによる参照 - c++ 使いの c# メモ静的リンクというとスタティックライブラリのことが思い浮かぶが、C#のクラスライブラリはDLL。 ラ…

DLLの参照

C#

前回はプロジェクトごと参照したので、今回はDLLだけの場合にDLLを参照する。C#でプラグインDLLを作る方法(入門編) - Qiita C# Hello DLLといってもVisualStudioでだけど。空のプロジェクト空のプロジェクトで、MainClass.csを追加MainClass.csを追加。こ…

クラスライブラリ

C#

C#でライブラリを作る場合、クラスライブラリと呼ばれていて、形式はDLLである。C#でプラグインDLLを作る方法(入門編) - Qiita C# Hello DLLクラスライブラリプロジェクトで作るのが普通だが、今回は空のプロジェクトで、空のプロジェクトプロジェクトClas…

オプション引数

C#

C#4.0でようやくオプション引数(デフォルト引数)に対応した。名前付き引数と省略可能な引数 - C# プログラミング ガイド | Microsoft Docs オプション引数・名前付き引数 - C# によるプログラミング入門 | ++C++; // 未確認飛行 CMainClass.csで、PrintVecto…

dynamic

C#

C#4.0では、dynamicを使って、動的型付け変数を宣言できる。dynamic - C# リファレンス | Microsoft Docs dynamic - C# によるプログラミング入門 | ++C++; // 未確認飛行 CまずはVisualStudioの、空のプロジェクト空のプロジェクトで、MainClass.csを追加し…

typeof

C#

typeofで指定のクラスのType型を取得できる。typeof - C# リファレンス | Microsoft Docs C#で型を判別するtypeofとis演算子 - Ararami StudioBaseClass.cs、DerivedClass1.cs、DerivedClass2.csは前回と同じで、MainClass.csは、Object.GetTypeで取得したも…

as

C#

asは安全にダウンキャストを行う。as - C# リファレンス | Microsoft Docsダウンキャスト可能な型ならキャストするが、失敗した場合はnullを返す。基底クラスBaseClass.csは、派生クラスDerivedClass1.csは、派生クラスDerivedClass2.csは、そして、MainClas…

is

C#

isは、指定のオブジェクトが指定のクラスであるかを判定する。is - C# リファレンス | Microsoft Docsそのクラスと同じというより、互換性があるかということなので、アップキャストできる基底クラスでもTrueになる。基底クラスBaseClass.csは、Outputメソッ…

sealed

C#

sealedは、継承禁止を表すキーワード。sealed 修飾子 - C# リファレンス | Microsoft Docs 継承 - C# によるプログラミング入門 | ++C++; // 未確認飛行 CClass1.csで、このようなクラスを定義し、 Class2.csで、Class1を継承、そしてsealedを付けて継承禁止…

readonly

C#

readonlyは、読み取り専用を表すキーワード。readonly キーワード - C# リファレンス | Microsoft Docs 定数 - C# によるプログラミング入門 | ++C++; // 未確認飛行 Cconstと違い、コンストラクタでは値のセットができる。空のプロジェクトで、Class1.csは…