純粋に機能的な辞書を提供するC#からの使用に適したクラスが(標準ライブラリにない場合はおそらくNugetパッケージとして)存在しますか?つまり、キーを追加または削除すると、元のものを変更せずに新しい辞書が返されます。C#純粋に機能的な辞書
答えて
、ImmutableDictionary<TKey, TValue>
の詳細を見つけることができます。
https://msdn.microsoft.com/en-us/library/dn467181(v=vs.111).aspx
あなたは不変の辞書に元 辞書のコピーを操作するとき操作が適用され、新しい不変 辞書が返されます。
[ReadOnlyDictionary'](https://msdn.microsoft.com/en-us/library/gg712875(v = vs。 110).aspx)と[[ImmutableDictionary]](https://msdn.microsoft.com/en-us/library/dn467063(v = v111).aspx)のような不変なコレクションで、前者はコレクションを変更するメソッドを提供しますが、元の変更可能なコレクションのラッパーであり、変更されている場合は読み取り専用コレクションも変更されます。不変なコレクションはラッパーではなく、変更することはできません。 –
...しかし、それらは類似した['Add'](https://msdn.microsoft.com/en-us/library/dn466983(v = v111).aspx)のようにそれらを「変更する」メソッドを提供します'string'メソッドには、新しい変更不変コレクションが返されますが、古いものは変更されません。 –
System.Collections.ImmutableからImmutableDictionaryが見つかりました。あなたの場合には、ここであなたが不変コレクションを探しているhttps://msdn.microsoft.com/fr-fr/library/dn467181(v=vs.111).aspx
「.NETには読み取り専用または不変の辞書がありますか?」という言葉を言い換えてください。その答えは、両方にイエスです。
読み取り専用辞書機能は、ReadOnlyDictionaryクラスによって提供されています。
不変性とは、別のものが変更を加えても、あるクライアントのコレクションのビューが変更されないことを意味します。
ここhttps://github.com/louthy/language-ext
:これは、最高の機能の辞書(またはそれらが機能的な世界では知られているよう「マップ」)は、このC#の機能ライブラリの一部として提供されていますImmutableDictionaryクラス
によって提供されマップモジュールは、次のとおりです。
https://github.com/louthy/language-ext/blob/master/LanguageExt.Core/Map.cs
免責事項:私はそれを書きました。しかし、ライブラリの理由は、C#の関数型プログラミングを容易にすることです。 InutableDictionaryの受け入れられた答えは、(不変のセマンティクスを使用していても)より多くのOOスタイルのインターフェースです。
- 1. インテリジェント純粋に機能的なセット
- 2. 機能的で純粋なプログラミング言語
- 3. 純粋に機能的なマップとセットの統計的性能
- 4. 純粋な機能のタイムアウト
- 5. weakhashmapの純粋に機能的な同等物ですか?
- 6. 機能的/ステートレスの純粋なコンポーネントを返信する
- 7. LINQは純粋に機能的ではないのはなぜですか?
- 8. 単純なプロデューサ - コンシューマの例C#辞書
- 9. 純粋なC++/CLIのMSIL
- 10. Cythonに「純粋な」C++クラスを書くことは可能ですか?
- 11. 純粋なユニークなIDを生成するための機能的アプローチ
- 12. 辞書の機能
- 13. 「真の」純粋な機能的二重リンクリストやHaskellでのように書くことができ
- 14. 純粋なCSSの自動フェードアウトがFirefoxで機能しない
- 15. 純粋なCSSタブパネルが機能しない
- 16. copy-on-write機能を備えた純粋に機能的なデータ構造ですか?
- 17. XCODEによる純粋なObjective Cプログラミング?
- 18. F#の純粋な機能と私が機能している場合
- 19. 純粋に機能的な言語における副作用の可能な手段
- 20. 純粋なC#と.NETフレームワークでアナグラムジェネレータを書く方法
- 21. 機能プログラミング(純粋なルート)を使用したExpress.jsサーバー
- 22. はモナドと純粋な機能を作曲
- 23. F#不変性は、純粋な機能や副作用
- 24. ValueError:機能に含まれない機能の辞書
- 25. 機能/永続的な辞書データ構造の実装
- 26. 純粋なRuby(not C)Markdownライブラリ
- 27. 純粋なANSI-C:ジェネリックアレイを作る
- 28. Cで "純粋な"バイトを読む
- 29. C++ map.clear()純粋仮想メソッドランタイムエラー
- 30. 純粋にFregeでAndroidアプリを書く
Eh、 'ImmutableDictionary'? https://msdn.microsoft.com/en-us/library/dn467181(v=vs.111).aspx不変の辞書を操作すると、元の辞書のコピーが作成され、操作が適用され、新しい不変の辞書が返されます。 –
あなたは「機能的」という言葉を誤解しています。読み取り専用または不変の辞書について質問しています。両方の動作を提供するクラスがあります –