[解決済み】Lookup()とDictionary(Of list())の違いについて)
2022-04-14 01:07:18
質問
どのデータ構造が最も効率的で、いつ、どこで、どのデータ構造を使えばいいのか、頭の中を整理しているところなんです。
さて、私が単に構造を十分に理解していないだけかもしれませんが、どのようにして
ILookup(of key, ...)
とは異なり
Dictionary(of key, list(of ...))
?
また、どこで
ILookup
また、プログラム速度/メモリ/データアクセスなどの面で、どこが効率的なのでしょうか?
どのように解決するのですか?
2つの大きな違い
-
Lookup
はイミュータブルです。やったー :) (少なくとも、私は、具体的なLookup
クラスはイミュータブルでありILookup
インタフェースは変異するメンバを提供しません。そこで 可能性 もちろん、他のミュータブルな実装もあります)。 -
存在しないキーをルックアップした場合、ルックアップしたキーは
KeyNotFoundException
. (したがってTryGetValue
ということです(AFAICR)。
この2つは効率的には同等と思われます。
Dictionary<TKey, GroupingImplementation<TValue>>
例えば、裏側で 要件に応じて、どちらかを選択してください。個人的には、通常、ルックアップの方が
Dictionary<TKey, List<TValue>>
その主な理由は、上記の最初の2点です。
なお、実装の詳細として、具体的な実装は
IGrouping<,>
を実装しており、値に使用されます。
IList<TValue>
と一緒に使うのが効率的ということです。
Count()
,
ElementAt()
などです。
関連
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] C#でHashtableよりDictionaryが好まれる理由とは?
-
[解決済み] フィールドとプロパティの違いは何ですか?
-
[解決済み] \0-9]よりも効率が悪い
-
[解決済み] SelectとSelectManyの違い
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み] Lookup<TKey, TElement>のポイントは何ですか?