C#ですべての配列が実装しているインターフェースは何か?
質問
新しい.NET 3.5プログラマとして、私はLINQを学び始め、私が今まで気づかなかったかなり基本的なことを発見しました。
この本では、すべての配列が
IEnumerable<T>
を実装していると主張しています (明らかに、そうでなければ配列で LINQ to Objects を使用することはできません...)。これを見たとき、そんなこと考えたこともなかったと思い、すべての配列は他に何を実装しているのかと自問しました - そこで、私は
System.Array
をオブジェクト ブラウザで調べてみると (これは CLR のすべての配列の基本クラスなので)、驚いたことに、これは
IEnumerable<T>
.
そこで質問ですが、その定義はどこにあるのでしょうか?つまり、どの配列がどのインターフェイスを実装しているのかを正確に知るにはどうしたらよいのでしょうか?
どのように解決するのですか?
からの ドキュメント を参照してください (強調)。
[...] Array クラスは
System.Collections.Generic.IList<T>
,System.Collections.Generic.ICollection<T>
とSystem.Collections.Generic.IEnumerable<T>
といった汎用的なインターフェイスがあります。 実装は実行時に配列に提供されるため、ドキュメントのビルドツールからは見えません。
EDITです。 Jb Evain氏のコメントで指摘されているように、ベクター(一次元配列)だけがジェネリックインターフェースを実装しています。については なぜ 多次元配列はジェネリックインタフェースを実装しているので、よくわかりません(下記のクラス宣言を参照)。
このクラスは
System.Array
クラス(つまり
ごとに
配列) もこれらの非一般的なインタフェースを実装しています。
public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable
関連
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] JavaScriptの配列で一意な値をすべて取得する(重複を排除する)。
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] 配列の結合/平坦化
-
[解決済み】JavaScriptで2つの配列を結合し、項目の重複を排除する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み] LINQクエリでToList()とToArray()のどちらを呼び出すのが良いですか?