問題タブ [hashset]

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 投票する
1 に答える
1740 参照

c# - WCFのHashSet

WCFインターフェイスでHashSetを使用しています

サービス参照を作成すると、HashSetはint[]に変わります。

ServiceKnownTypeを追加しました:

いくつかの構成を試しましたが、完全に変更することはできませんでした。

変更すると、すべてが機能するようにハードコーディングされていますが、参照を更新するたびに変更するのは本当に面倒です。

私はおそらく何か間違ったことをしている、何か指針やアイデアはありますか?

0 投票する
4 に答える
1116 参照

c# - オブジェクトがハッシュセットによってハッシュされる方法を制御するにはどうすればよいですか

HashSet<T>オブジェクトのコレクションを格納するためにを使用しています。これらのオブジェクトにはすでに一意のIDが付いているSystem.GuidのでHashSet<>、オブジェクトをハッシュする方法を理解しようとするのではなく、既存のIDを使用する方がよいでしょう。ビルドインハッシュをオーバーライドして、プログラムにビルドインID値をハッシュ値として使用させるにはどうすればよいですか?

Guidまた、自分のオブジェクトのを知っていると言いますが、これだけに基づいてHashSet<>オブジェクトを取得する方法はありますか?または、代わりに辞書を使用する必要があります。HashSet<T>Guid

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

c# - HashSet IntersectWith は単語を数えますが、一意のみです

フォームとテキスト ファイルで richtextBox コントロールを取得しました。テキストファイルを配列に取得richtextbox1.textし、それを比較して一致する単語をカウントするよりも他の配列に取得しています。

しかし、たとえば、テキスト ファイルには 2 つの "name" 単語があり、richtextbox には 3 つの "and" 単語があります。したがって、richtextbox のテキスト ファイルに同じ単語が 2 つある場合、2 の後に 3 つ以上になることはありません。それは間違った単語である必要があるため、カウントされません。しかし、HashSet は一意の値をカウントしているだけで、テキスト ファイル内の重複を探していません。テキスト ファイル内のすべての単語を RichTextBox 内の単語と比較したいと考えています。

私のコードはここにあります:

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

c# - HashSet を ListView アイテムにバインドする (C#、WPF)

HashSet を ListView アイテムにバインドしようとしています。私は自分のコードをここに文書化しました:

それを達成するためのヒントを教えてくれる人はいますか?どうもありがとう!

乾杯

0 投票する
7 に答える
15953 参照

c# - C#でHashSetを持っているのにSetを持っていないのはなぜですか?

古い質問

私の理解では、C# には何らかの意味HashSetset型があります。私は何を理解していHashSetます。しかし、なぜset別の単語なのですか?すべてのセットが ではないのはなぜHashSet<Object>ですか?

新しい質問

Set型と同様に、C# にジェネリック型がないのはなぜDictionaryですか? 私としては、検索・追加・削除の性能が標準的なセットが欲しいところです。それがハッシュで実現されているか、他の何かで実現されているかはあまり気にしません。では、実際にHashSetはこのバージョンの C# では として実装されるが、将来のバージョンでは多少異なるセット クラスを作成してみませんか?

または、少なくともインターフェースではないのはなぜISetですか?

答え

以下に回答してくれたすべての人に感謝しICollectionますISet。ただし、私の観点からは、セットが列挙可能である必要はありませんが、ICollection実装IEnumerableします --- 例: 1 と 2 の間の実数のセット (さらに、セットは動的に生成できます)。「普通のプログラマー」が無数のセットを必要とすることはめったにないので、これはマイナーな暴言であることに同意します。

わかりました、私はそれを理解したと思います。HashSetは絶対に呼び出されることを意図していましSetたが、この単語Setはある意味で予約されています。より具体的には、.NET アーキテクチャの作成者は、さまざまな言語に対して一貫性のある (原文のまま!) クラスのセットを持ちたいと考えていました。これは、標準クラスのすべての名前が .NET 言語のキーワードと一致してはならないことを意味します。ただし、という単語Setは、実際には大文字と小文字を区別しない VB.NET で使用されているため (そうですか?)、残念ながらそこには操作の余地がありません。

謎が解けました:)

エピローグ

Alex Y. による新しい回答は、次の .NET 4.0 インターフェイスについて説明しているMSDN ページへのリンクISetですHashedSet。ハッピーエンド。

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

c# - コレクションルックアップ; 辞書の代替

TimeSheetActivityクラスには、Allocationsのコレクションがあります。割り当ては、ドメイン内の他のオブジェクトによっても使用される値オブジェクトであり、次のようになります。

同じAllocation.EventDateに重複して割り当てることはできません。したがって、クライアントがアクティビティに割り当てを行おうとすると、同じAllocation.EventDateのコレクションにすでにAllocationがあるかどうかがチェックされます。そうでない場合は、新しい割り当てがコレクションに追加されますが、追加されている場合は、既存の割り当てが新しい割り当てに置き換えられます。

私は現在、Allocation.EventDateをキーとして、コレクションを維持するためにディクショナリを使用しています。ドメインでは問題なく動作しますが、キーがすでに値の一部になっているという事実自体が「悪臭」ではないかと思います。

また、辞書の値以外のものを永続化する理由はありません。私はNHibernateを使用しているので、それを行うためにカスタムタイプを作成する必要があるかもしれません。それが、別のタイプのコレクションを使用する必要があるという手がかりにもなるのではないかと思います。(これが、Allocationクラスの仮想プロパティの理由でもあります)。

私が考えている主な代替案は、専用のEqualityComparerを備えたHashSetです。

どう思いますか?

乾杯、ベリール

0 投票する
7 に答える
139320 参照

java - 反復中に HashSet から要素を削除する

したがって、反復中にJava HashSetから要素を削除しようとすると、 ConcurrentModificationExceptionが発生します。次の例のように、 HashSetから要素のサブセットを削除する最良の方法は何ですか?

これが解決策ですが、あまりエレガントではないと思います:

ありがとう!

0 投票する
5 に答える
11476 参照

java - コレクションremoveAllは大文字と小文字を区別しませんか?

さて、これが私の問題です。HashSet'sする必要があります。このメソッドを使用して、removeAll一方のセットに存在する値をもう一方のセットから削除します。

Setメソッドを呼び出す前に、明らかに値をsに追加します。値は両方のリストで異なるケースであるため、追加する前.toUpperCase()にそれぞれを呼び出します。String事件に韻や理由はありません。

を呼び出したらremoveAll、に残っている値の元のケースを元に戻す必要がありますSet。元のリストを実行して使用せずにこれを行う効率的な方法はありCompareToIgnoreCaseますか?

例:

リスト1:

リスト2:

この後、を使用しHashSetてリストごとに個別に作成します。次に、を呼び出します。toUpperCase()StringremoveAll

リストを再び次のようにする必要があります。

どんなアイデアでも大歓迎です。私はそれが貧弱であることを知っています、元のリストの基準があるはずですが、それは私が決めることではありません。

0 投票する
11 に答える
93751 参照

c# - HashSetはいつ使用する必要がありますかタイプ?

タイプを調べてHashSet<T>いますが、コレクションのどこにあるのかわかりません。

代わりにそれを使用できますList<T>か?のパフォーマンスはHashSet<T>もっと良くなると思いますが、その要素への個々のアクセスを見ることができませんでした。

列挙専用ですか?