問題タブ [generic-collections]
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# - リストから削除する方法効率的に(C#)?
私が正しく理解していれば (間違っている場合は訂正してください)、リストは .NET の配列によって実装されます。つまり、リスト内の項目を削除するたびに、すべてのリストが再割り当てされます (つまり、O(n)
)。
私はゲームを開発しています。ゲームでは、特定の瞬間に多くの弾丸が空中を飛んでいます.100個の弾丸としましょう.フレームごとに数ピクセルずつ移動し、ゲーム内のオブジェクトとの衝突をチェックします.削除する必要がありますリストから衝突したすべての弾丸。
そこで、衝突した弾丸を別の一時リストに集めてから、次のことを行います。
ループはO(n)
であり、削除はであるため、削除に) 時間をO(n)
費やします。O(n^2
それを削除するより良い方法、またはより適切なコレクションを使用する方法はありますか?
c# - ジェネリック コレクションのサイズを制限しますか?
ジェネリック コレクションのサイズを制限する方法はありますか?
変更ごとに WriteableBitmap のクローンを格納するために使用している WriteableBitmap の Stack があります。つまり、最新の WriteableBitmap をスタックからポップするだけで簡単に元に戻すことができます。
問題はメモリの使用量です。このスタックを 10 個のオブジェクトを保持するように制限したいのですが、これを簡単に実行できるプロパティが表示されません。方法はありますか、または変更ごとにスタック サイズを確認し、10 に達するたびに最後の 10 個のオブジェクトを新しいスタックにコピーし、その後の変更ごとにコピーする必要がありますか? 私はこれを行う方法を知っていますが、もっと簡単な方法があることを望んでいましたか?
c# - Collections.Generic.Queue には Synchronized メソッドがないのに Collections.Queue にはあるのはなぜですか?
System.Collections.Queue
クラスにQueue.Synchronized
は、スレッドセーフな Queue 実装を返すメソッドがあります。
しかし、一般的なものにはメソッドSystem.Collections.Generic.Queue
がありませんSynchronized
。この時点で、私は次の 2 つの質問を念頭に置いています。
- 一般的なものにこのメソッドがないのはなぜですか? フレームワーク API の設計上の決定ですか?
- 返されるキューは クラスとどう
Queue.Synchronized
違うのですか?ConcurrentQueue<T>
ありがとう。
ajax - 以前の呼び出しの値を再利用する AutoMapper UseValue、ResolveUsing、または MapFrom。キャッシングか何かですか?
2 回目以降の呼び出し (Ajax GET 呼び出し) でAutoMapper
、以前の値 (アクション リンクのクリックによる最初の呼び出しの値) を再利用している状況があります。それは「キャッシング」の問題のようなものです...
UseValue
を使用するResolveUsing
かMapFrom
、上記のopt =>
ラムダで使用するかは問題ではありません。動作は同じです。つまり、以前の呼び出しからの値を再利用します。
AssessmentId
プロパティがソース タイプ ( ) に存在しませんElement
。AssessmentId
このようにして、このコードがあるメソッドへの後続の呼び出し中に動的に「変更される可能性がある」値を割り当てようとします。assessmentId
上記のメソッド シグネチャに示されているように、ASP.NET MVC アクション メソッドのパラメーターです。
List
次に、アクション メソッドで次のコードを呼び出します。
1 回目questions
は問題ありません。つまり、すべてのAssessmentQuestionViewModel
オブジェクトのプロパティが定義AssessmentId
どおりに正しく設定されています。CreateMap
2回目の呼び出しから、1回目の呼び出しから再利用assessmentId
し、ビジネスロジックを台無しにします。これは、メソッドにパラメーターとして渡されているAssessmentId
更新済みにマップすることを期待しているためです。assessmentId
List
assessmentId
念のため: コードにブレークポイントを設定したところ、パラメーターの値が正しいことがわかります。questions
プロパティに間違った値 (AssessmentId
現在の値とは異なる値) を持つのは、返されたマップされたオブジェクトだけassessmentId
です。AutoMapper にその現在の値を使用してマッピングを行うように依頼しているので、値は私が理解しているように等しいはずです。
AutoMapper 2.2.1-ci9000 (プレリリース) を持っていますが、これを以前のバージョンでテストしたところ、同じ動作が見られました。この「不正行為」はなくなるだろうと考えて、プレリリースにアップデートしました。
これはバグだと思います。私が間違っている場合、またはサポートされていない方法で使用しようとしている場合は、修正してください。:)
java - Map(HashMap) のすべてのキーを取得できませんか?
サーバーが指示を送信し、クライアントがそれらの指示を受信するクライアントサーバーアプリケーションに取り組んでいます。マップは次のように宣言されています
マップはsynchronised(obj)
、値クラスのコンストラクターで値を取得しています
このマップのすべてのキーを取得しようとしています。私は使用 Set<key> t=Map.KeySet();
しましたが、これは、インターフェースでシンボル:KeySet()が見つからないというコンパイルエラーをスローしますjava.util.Map.
。注:キーはインターフェースであり、値はマップが宣言されているクラスです。
java - Java-特定のインターフェースを継承するすべてのクラスに機能を追加する
申し訳ありませんが、私の問題をより核心的に、またはより抽象的に説明することはできません。私の問題を説明する最良の方法は、この非常に具体的な例を使用することだと思います。
関数の呼び出し方法に基づいて、文字列を解析し、特定のタイプの特定のコレクションを提供する関数'readCollection'を定義したいと思います。
たとえば、私はそれをそのように使用したいと思います:
また
もちろん、1つのインスタンス( "Bar ..")を読み取るための'read'メソッドを持つすべてのクラスのインターフェイスを定義しました。
私はいくつかの問題の間に挟まれています:
-当然、関数readCollectionは静的関数である必要がありますが、インターフェイスに静的メソッドを含めることはできません。
-メソッドreadCollectionは、FooやBarなどのタイプの新しいオブジェクトを返す必要がありますが、readCollectionを定義したクラスで一般的に定義されているタイプをインスタンス化できません。
-メソッドが静的に定義されていない場合、そのタイプの特定のオブジェクトを参照せずにメソッドを呼び出すことはできません。これは、前のポイントのために行うことはできません。
FooやBarなどごとにコピーせずにメソッドを作成するにはどうすればよいですか?
私は自分で解決策を見つけたようですが、それは非常に醜くて厄介です。
私は今持っています
と
と
ここでは、メソッド'read'を参照するために、結果をBarに返すために、ArrayListの新しいインスタンスを送信しました。どうすればそれを回避できたのかわかりません。
もっと良い方法があると教えてください。どこかで私は後知恵で非常に愚かであると感じたいです。
c# - マルチキーデータ構造
複数のキーで検索できるデータ構造を探しています。例を使用して説明する方が簡単です。
このようなことは可能ですか?もしそうなら、それを行うためにすでに存在するものはありますか?すべてをキーのように扱い、関連するすべてのキーを検索して返すものをどのように実装しますか?
理想的には、任意の数および/またはタイプのパラメーターを使用することも許可されます。
c# - C# でのカスタム ジェネリック リストの作成
こんにちはフレンズ私はカスタムジェネリックリストを作成したいです私のコードは次のとおりです:
結果のリストでは、ループに追加された最後のアイテムのみが表示されます。問題の解決にご協力ください..
c# - 石鹸エンベロープの欠損値を返す
.asmx ファイルを指すアプリケーションのサービス参照として設定された Soap WSDL があります。レスポンス ソープ エンベロープに問題があります。受信コードで作成されたときに値が存在するコレクションオブジェクトがあります。ソープ エンベロープがメモリ ストリームになり、呼び出し元のクライアントに送り返されようとしているところまでコードを進めると、コレクションに値が入力されます。ただし、もう一度 F10 を押すと、空のコレクションで呼び出し元のクライアントに戻ります。
私が使用しているクラスの WSDL は次のとおりです。
これは、シリアライゼーションと MemoryStream への変換前の応答 Envelop です。
StepInstances は、私の問題に焦点を当てたコレクションです。ご覧のとおり、期待どおりに入力されています。
これは、エンベロープに変換された MemoryStream です。
それが MemoryStream に入った後、呼び出し元のクライアントに送り返されます。オブジェクトを見ると、StepInstances は null です。
また、投稿した WSDL は一部であり、主に問題のあるクラスであることに注意してください。返されたエンベロープは、これらのクラスを含むより大きなクラスであり、投稿するには多すぎました。
しかし、受信クライアントからステップインする最後のコードでは、メモリストリームが読み込まれます。次に f10 を押すと、呼び出し元のクライアントにオブジェクトが戻り、コレクションが null になります。
これが理にかなっており、誰かがそれに光を当てることができることを願っています. 必要なデータがあれば、投稿してみます。
また、アクセスできるのは .wsdl ファイルだけであり、実際の WCF プロジェクトやクラスではないことにも注意してください。
サービス参照を構成する場合: Collection Type には Generic.List を選択し、Dictionary Type には Generic.Dictionary を選択しました。
更新: wsdl 内の APIObject は次のようになります
更新 #2: WCF であると誤解しています。.wsdl ファイルにしかアクセスできず、コンパイル後にサービス参照を .asmx ファイルにポイントします。
asp.net-mvc - リストの定義かみそりのページで
List オブジェクトを定義しようとすると、「T」の代わりにタグ名が挿入されるのはなぜですか?