問題タブ [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.
c# - IList値を追加するときにNull参照例外をスローします
私はクラスを持っています:
私がそれを呼ぶとき:
例外をスローします:
c# - Dictionary を ICollection として返す
さまざまなコレクションとデータ型を実装できるインターフェイスがあります。一部のコレクションでは正常に動作しますが、ディクショナリが問題を引き起こしています。ディクショナリは少し異なり、キーと値のペアがあるためだと思います。
c# - DataSet で NullReferenceException が発生するのはなぜですか?
ShoppingCart が必要とする各アイテムについて、Northwind データベースからデータベース クエリを開いています。テーブルProductID
からUnitsInStock
出し入れすることです。Products
データベースから 2 つの列を取り出して、データをDataTabel ds
. 次に、ユーザーが入力した数量がデータベース内の列の在庫数よりも少ないことを確認します。
theCart.Values
ICollections の一部です。
「データベースへの接続に問題がありました: オブジェクト参照がオブジェクトのインスタンスに設定されていません。」という例外メッセージからエラーが発生しました。
これがコードです。
c# - IEnumerable vs ICollectionvsIListを使用したカスタムコレクション
GenericCollection
独自のカスタムクラスを設計する必要があります。IEnumerable
今、私は、、、ICollection
およびを使用してそれを導出するための多くのオプションがありIList
、後でいくつかの追加機能を提供します。
IEnumerable<T>
この場合のように、実際にコレクションを保持するためにオブジェクトを宣言する必要があるかもしれないと私は少し混乱しています_list
。
しかし、ICollection<T>
またはを使用する場合は、暗黙的に使用可能であるため、オブジェクトIList<T>
を宣言する必要はありません。List
パフォーマンスに関して、これら2つのアプローチの違いは何ですか?
どのシナリオでは、特に独自のコレクションをデザインする場合に、それぞれが優先されます。パフォーマンスの良い軽量コレクションに興味があります。これはを使用して達成できると思いますが、それを使用IEnumerable<T>
するいくつかの強力な理由とどの程度正確に一致しますか?
いくつかの既存の投稿を確認しましたが、必要な情報を提供しているものはありません。
c# - ICollection タイプの IDictionary.Values プロパティはなぜですか?
IDictioary<TKey, TValue>.Values
プロパティがICollection<TValue>
ではなくタイプである理由に頭を悩ませようとしていIEnumerable<TValue>
ます。プロパティの .NET 実装はValues
、インターフェイス プロパティを明示的に実装し、値を追加または削除しようとすると例外をスローするValues
型としてプロパティを公開します。Dictionary<TKey, TValue>.ValueCollection
これは完全なハックのようです。ディクショナリの性質上、ディクショナリ内の値のコレクションを取得し、そこから値を追加/削除できる実装を作成することは理にかなっていますか?
c# - インターフェイスへのインターフェイスのコレクションの追加
インターフェイスに頭を悩ませようとしています。私は次のようなものを実装することにつまずき続けています:
私はこれを適切に行う方法について完全に途方に暮れています。インターフェイスのコレクションを設定する適切な方法は何ですか?
編集: Foo を実装した方法は、おそらく問題の一部です。
asp.net-mvc - Asp.Net MVC 4 - オブジェクト モデルを別のオブジェクト モデル内の ICollection に追加する
いくつかの背景
Asp.Net MVC 4 データベースの最初のアプリケーション、Submission と Comment に 2 つのテーブルがあります。(他にもたくさんありますが、この質問には関係ありません) . 提出物には、任意の数のコメント (1 対多) を関連付けることができます。
私は提出の詳細ページを持っています。このページで、ユーザーは jQuery ダイアログ ボックスを開いて内部に部分的なビューを表示し、提出にコメントを追加できます。この部分的なビューは、コメントを追加するために作成された厳密に型指定されたビューモデルにバインドされています。
テーブル/モデル
提出表
Submission テーブルのクラス モデルを次に示します。(簡単にするために一部のプロパティを省略しています)。
コメント表
Comment テーブルのクラス モデルは次のとおりです。(繰り返しますが、簡単にするために一部のプロパティを省略しています)。
要件
私がやろうとしているのは、特定の提出物に対して既に存在するコメントのコレクションに新しいコメントを追加することです。
ここのところ...
これまでのところ、コントローラーで初期化され、入力されたビューモデルをコントローラーのポストメソッドに返すコメント追加ダイアログボックスのビューモデルがあります。ここにコードがあります
ビューモデル
ViewModel ビルダー
コントローラの Get メソッド
コントローラポスト方式
質問
上記の機能をテストすると、実行はdb.SaveChanges()
ViewModel ビルダーまで成功しますが、この行が実行されると実行が停止します。何が起こっているのかわからず、その結果、完全に立ち往生しています。
A)コメントを正しい方法で追加しようとしているかどうか、誰かが知っていますか? B)この行がエラーなしで実行を停止しているのはなぜですか?
アップデート
コードの周りに Try Catch を配置するという彼の提案について、Peter Smith に感謝します。そもそもなぜそれを考えなかったのか、または実行しなかったのかわかりません。
次のエラーが表示されます。
{MySql.Data.MySqlClient.MySqlException (0x80004005): SQL 構文にエラーがあります。
Submission_Comment
'(SELECT" & vbLf & " .Submission_ID
, " & vbLf & " の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください 。Submission_Comment
.' 行 1" & vbCrLf & " at MySql.Data.MySqlClient.MySqlStream.ReadPacket()" & vbCrLf & " at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertId)" & vbCrLf & " at MySql. Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& InsertedId)" & vbCrLf & " at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)" & vbCrLf & " at MySql.Data.MySqlClient .MySqlDataReader.NextResult()" & vbCrLf & " at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)" & vbCrLf & " at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()" & vbCrLf & " at MySql. Data.MySqlClient.MySqlCommand.2 identifierValues, List
1 generatedValues)" & vbCrLf & " at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)}
c# - C# での ICollection プロパティの値の設定
私のクラスはインターフェイスを継承するため、Person クラスに emailaddress プロパティが必要です。
私の質問は、プロパティを取得してプロパティを設定する最良の方法は何ですか
基本的に、クラスで複数の電子メールを許可しようとしています。
完全な開示のために、私はこれにかなり慣れていないため、正しい質問をしていない可能性がありますが、1日半検索しましたが、このようなものは見たことがなく(珍しいとは思いません)、使用できます洞察。
電子メール クラスのプロパティ:
asp.net-mvc-3 - MVC3:ビューからコントローラーにICollectionを渡します
タイプicollectionのプロパティを持つモデルがあります。
これらの2つのクラスを含むモデルをビューに渡し、次を使用してicollection内のアイテムを表示できます。foreach(var item in Model.myClass.param3)
そして、アイテムを隠しフィールドに保存して、コントローラーで取得します
しかし、フォームを送信してモデルをコントローラーに渡すと、model.myClass.param3を呼び出すときにカウント=0になります。
ICollectionをビューに渡すにはどうすればよいですか?このリンクを試しましたが、なぜ機能しないのかわかりません。
編集
リンクは、インデックスを作成するためにクラスBookをリストとして使用します(ICollectionをリストにキャストする必要があることを示唆しています)。それ、どうやったら出来るの?また、それをリストにキャストした場合、コントローラーはICollectiionを受け取ることを期待しているので、それをコントローラーに渡すにはどうすればよいですか?
c# - ICollection チャイルドの削除/オリジナル アイテムの「リスト」を提供する方法
こんにちは、次のようなことをしたいのですがSomeCollection.GetChanges(ItemState.Deleted)
、結果はすべて削除されたアイテムになるはずです
でそのようなことができますDataTable
。しかし、これをList<T>
orで実装する方法はObservableCollection<T>
?
この問題の解決策は既にありますか? そうでない場合は、そのようなコレクションを作成するのが賢明でしょうか?
どんなアドバイスでも大歓迎です
編集:
これまでのところ私のコードです。今はテストして修正していますが、まだより良い解決策があるかもしれません
私はまだ Linq が多すぎると思います。パフォーマンスを改善するための提案は大歓迎です
編集2:
私はここで解決策を見つけました。それには私が望むものがもっと含まれていますが、それでも私のものよりも優れた解決策です:D