問題タブ [icollection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1738 参照

c# - C# IDictionary.Keys と IDictionary.Values: 最も最適な実装は何ですか?

私は辞書として機能する C# クラスを持っているので、現在 IDictionary をサポートしています。

プロパティ Keys と Values を除いて、すべて問題ありません。

内部にキーまたは値のコレクションを持っていないので、これらを ICollection として提供する方法を考えています。

私の最初の試みは、次のような「利回り」の魔法を使用することでした。

しかしもちろん、返される型は IEnumerator ではなく ICollection であるため、これは機能しません...

これが最も簡単な解決策だったので、残念です!

私の 2 番目の試みは、新しく作成した配列に値をコピーし、その配列を返すことでした。

Array は ICollection をサポートしているため、これは機能します。
しかし問題は、ICollection にエントリを追加および削除するメソッドがあることです。呼び出し元がこれらのメソッドを呼び出すと、辞書ではなくコピーのみが変更されます...

私が選択した最終的な解決策は、キーと値のプロパティからこれらのコレクションを返すことができるように、辞書で IDictionary だけでなく ICollection と ICollection もサポートすることです...

そのため、プロパティ Keys および Values の get アクセサーは単に「これ」、つまり辞書を返します。

これはおそらく最も最適なソリューションですが、IDictionary を実装するたびに 2 つの追加のインターフェイスを実装する必要があるのは面倒です。

他にアイデアはありますか?

結局のところ、コピーを配列として返すことはそれほど悪い考えではなかったと思います。とにかく、 IDictionary には、使用する方が理にかなっている Add および Remove メソッドが既にあります。

返されたコレクションを変更しようとすると失敗するため、配列をラップする ReadOnlyCollection を返す方がよいでしょうか?

0 投票する
1 に答える
2373 参照

asp.net-mvc - ASPMVC3ViewModelのリストプロパティを初期化できません

以下は、構築しているASPMVC3サイトで使用する2つのViewModelです。その下のコードでは、という名前の変数のプロパティのTradingPartners IListプロパティを設定しようとしています。AgentIdDetailAgentWithTrainingbigAgent

よりよく説明するために:

bigAgentAgentWithTraining

AgentWithTrainingAgentIdDetail ICollectionプロパティ AgentIdDetailには、IList次の名前のリストオブジェクトがあるため、リストオブジェクトがあります。TradingPartner

問題は次のコード行です。

これは私にエラーを与えます:

Cannot implicitly convert type 'Monet.ViewModel.AgentIdDetail' to 'System.Collections.Generic.ICollection<Monet.ViewModel.AgentIdDetail>'. An explicit conversion exists (are you missing a cast?)

誰かが私が初期化する方法を説明できますかbigAgent.AgentIdDetails?以下は、役立つ場合に備えて、私が使用しているコードの完全なセクションです。

0 投票する
1 に答える
1171 参照

f# - F#return ICollection

C#で作成されたライブラリを使用しています。私はいくつかのコードをF#に移植することに取り組んできましたが、C#ライブラリからかなりの数の基礎となる型を使用する必要があります。

1つのコードで値のリストを計算し、それをクラスのパブリックフィールド/プロパティに割り当てる必要があります。このフィールドは、2つのICollectionを含むC#クラスです。

私のF#コードは正常に機能し、F#Seq/Listを返す必要があります。

次のコードスニペットを試してみましたが、それぞれエラーが発生します。

  • F#メンバーの戻りタイプは、recoverieslistタイプのrecoveryListと呼ばれるタイプです。
  • 2つのICollectionオブジェクトを含むクラス自体であるクラスのパブリックフィールド

    /li>

これにより、エラーが発生します。タイプはICollectionであると予想されますが、タイプはリカバリリストです。

エラーが予想されるタイプICollectionを提供しますが、ResizeArrayです

上記と同じエラー-ICollectionが必要ですが、タイプはListです

何か案は?これらの操作はC#の観点からは有効であるように見え、List / ResizeArrayはICollectionを実装しているため、値を割り当てる方法がわかりません。

基になるC#ライブラリのタイプを変更することもできますが、これには他の影響がある可能性があります。

ありがとう

0 投票する
2 に答える
1379 参照

entity-framework - MVC4 EF DB First - How to access a models foreign key (ICollection)

I created a MSSQL database with tables containing foreign keys. I then created a new MVC 4 web application. I used Entity Framework to generate my controllers/models/views. In the models, tables that were linked using foreign keys appear as ICollections. For example:

My question is how am I able to access the data stored in those ICollections in a view? Test.Questions[x] <-- gives errors.

0 投票する
2 に答える
1059 参照

asp.net-mvc-4 - 一度に 1 つずつ動的に ICollection に単一のエントリを追加する (MVC4 EF)

この問題に頭を悩ませています: ICollection に単一のエントリを追加する方法はありますか? 一度に 1 つずつ、追加された各エントリのデータをデータベースに永続化しますか?

ここに私の特定の状況があります:

私はテストモデルを持っています:

テストには問題のコレクションが含まれています。質問モデル:

私の目標は、ユーザーが名前と説明を使用してテストを作成し、満足するまでそのテストに動的に質問を追加できるようにすることです。現時点では、テストを作成するのは簡単ですが、テストに質問をロードするのは難しいことがわかりました。Question と Test.Id をコントローラー アクションに送信し、データをデータベースに永続化するフォームを想定していました。しかし、テストの ICollection に質問を動的に追加する方法がわかりません。

ICollection に単一のエントリを追加する方法はありますか? 一つずつ?

私が行った多くの試みの1つ

助けてくれてありがとう!

levelnis への対応:運がなかったのでこれを試しました

データベースに質問を追加していません。何か案は?

編集:データベースに質問を取得する私が試した唯一のコードは次のとおりです。

..しかし、これにより、データベース内に同じ名前/説明を持つ別のテストが作成されますが、新しい ID がインクリメントされます。

0 投票する
1 に答える
704 参照

entity-framework - 仮想コレクションからオブジェクトを削除するか、Entity Framework Code First で別のコレクションに移動する

私は自己参照の親子関係を持つオブジェクトを持っています:

親IDが変更された場合、オブジェクトが古い親の子から正しく削除され、新しい子に追加される(または正しくnullに設定される)ように、編集機能を使用しようとしています。

コードで親IDを正しく変更するためにいくつかの組み合わせを試しましたが、ここで行う正しいことをクラックすることはできません.

問題は、データ テーブルに ParentID に関連する 2 つのフィールドがあることです。1 つ目ParentIDは正しく変更されていますが、 2 つ目は変更されてParent_ContentIDいません。.Contents2 つ目は、親からプロパティをループするために使用されます。

私は何が欠けていますか?親の「関連オブジェクト」コレクションから現在のオブジェクトを削除するにはどうすればよいですか?

0 投票する
0 に答える
66 参照

asp.net-mvc-3 - 複数の ICollection プロパティ MVC3 でモデル エンティティを更新できません

ここに私の問題があります、

Componet.cs に次のモデルがあります (私の実際のコンポーネントにはさらに 10 個の Icollection がありますが、ICollection が 1 つでも 10 でも問題は同じはずなので、書き留めません)。

私のアプリケーションでは、その属性を追加、削除、または編集するために、そのコンポーネントを編集できます。国または言語に応じて、複数のブランド所有者または説明を追加できます。編集するコンポーネントの 1 つを選択すると、そのコンポーネントをセッション変数にロードし、そのセッション変数に対してすべてのアクションを実行します。

アイテムの編集が終了すると、Accept と Cancel の 2 つのボタンがあります。セッション変数で行われたすべての変更をキャンセルすると、破棄されます。

Accept ボタンを押して選択した項目を更新すると、問題が発生します。への道が見つからない

私のAcceptメソッドは次のとおりです。

ステータスを Modified にアタッチ、追加、設定しようとしましたが、うまくいきません。また、コンポーネントを取り外して再度取り付けてみました。誰かが私が間違っていることを教えてもらえますか?

どうもありがとうございました。

私の悪い英語を申し訳ありません。

0 投票する
2 に答える
1424 参照

.net - .net --dictionary.Keys.Add?

.Netでは、IDictionary<K, V>定義.Keys.Valuesプロパティがあり、それぞれがではICollection<>なくIEnumerable<>、より自然にフィットするように見えます。

のインスタンスを呼び出す、.Addまたはインスタンスを呼び出すための合理的なユースケースはありますか?.Remove.Keys.ValuesIDictionary<K, V>

0 投票する
2 に答える
249 参照

asp.net-mvc-3 - 型エンティティの問題の ICollection への追加

私が何を間違ってドーピングしているのかわからない:

私のコントローラーで:

RecommendAFriendViewModel モデル グループ プロパティ:

RecommendedUser エンティティ グループ プロパティ:

私が得る 2 つの赤い線で: 「int」から「Zinc.Entities.Group.Group」に変換できません
。 ' 無効な引数があります

私が間違っていることを教えてください。ありがとう