問題タブ [icomparable]

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 に答える
606 参照

c# - メソッド呼び出しに問題があり、正しい値が返される

問題のメソッド呼び出しは、最後にこの writeline 呼び出し内にあります

メソッドが含まれるレートクラスは次のとおりです

初期化時に次の変数に値を設定すると、値が返されますが、デフォルトのままにしておくと、書き込み行から常に 0 が返されます。

他のものを見る必要がある場合に備えて、残りはここにあります.

並べ替えについても質問があります。taxOwed の金額で並べ替える必要があるため、正しく機能しているとは思いませんが、現在は 0 であり、私の問題です。

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

c# - この場合、どのソート戦略を使用する必要がありますか?

映画が属するカテゴリの名前を表す文字列のリストがあります。以下のように PivotViewerStringProperty で使用するために、クラスでそのリストを定義し、List<String> および IComparable インターフェイスを実装します。

ここでのポイントは、映画は多くのカテゴリに属する​​必要があるということです。ピボットビューアを作成し、各カテゴリごとに映画のデータベースを並べ替えることができるように、並べ替え戦略が必要です。したがって、アプリケーションの実行中は、同じ映画を 2 つ以上のカテゴリで同時に表示する必要があります。

どのソート方法を使用すればよいですか?

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

c# - IEnumerableにすることは可能ですかIComparable を実装しますか?

タイトル通り。

クラスを比較可能にして並べ替えに使用する場合、つまり DataGrid を使用する場合は、IComparable を実装します。

しかし、IEnumerable の場合、どうすればそれを行うことができますか?

私は IEnumerable のコレクションを持っています。各 IEnumerable を互いに比較し、並べ替えを行いたいと考えています。

以下を含むコレクションを考えてみましょうList<IEnumerable<char>>:

IEnumerable<char> EnumableA次を含む: "d"、"e"、"f"

IEnumerable<char> EnumableB次を含む: "d"、"e"、"c"

コレクションList<IEnumerable<char>>を DataGrid にバインドする場合、それらを acs 順に並べ替えると、順序はEnumableB1 番目、次にEnumableA2 番目になります。

EnumableAを実装するオブジェクトに格納するなどの解決策を考えていますIComparableが、これには別のオブジェクトのコレクションを作成する必要があり、コストがかかります。

IComparableそれで、ソート可能になるように、インターフェイスとソートの実装を追加することは可能ですか、とにかくIEnuerable<char>ですか?

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

c# - IComparable を使用してオブジェクトを比較する際の問題

ここに私が働こうとしているいくつかのコードがあります。1 つのセットのアイテムが他のセットのアイテムと一致しない場合、比較されたすべてのアイテムのリストに 0 が追加されます。最終的にリストに 0 以外の値が含まれていない場合は、最初のセットの項目が 2 番目のセットにまったく存在しないことを意味します。なんらかの理由で、結果のリストに間違った値が表示され続けるので、どこかにバグがあるはずです。それを見つけることができないだけです。

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

c# - IComparable IgnoreCase

IComparableタイプの2つの値を比較する関数を作成し、等しくない場合はスローします。基本的に、アサーションを作り直します。はい、私は車輪の再発明をしていることを知っています。

文字列を除いて正常に動作します。大文字と小文字を区別しないオプションを期待していました。「AA」と「aa」

Tが文字列の場合は特にこのメソッドをオーバーライドしたいので、String.Compareを使用して大文字と小文字を区別しません。文字列を無視するかどうかをユーザーが指定できるように、別のパラメーターを用意するのもよいでしょう(ただし、これはintのような他のタイプには役に立たないので、紛らわしい/悪いデザインのようです。ここで提案を受け付けています)。

これを行う良い方法はありますか?また、IComparableとは異なるタイプに変更することもできます。当初は、これが仕事に最適なインターフェイスだと思っていましたが、今では間違っていた可能性があることに気づきました。

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

c# - 2 つのカスタム オブジェクトの比較

Filter場合によっては 1 つのプロパティ、場合によってはすべてのプロパティに従って2 つのオブジェクトを比較する最良の方法は何ですか? 私が持っていることを意味し、使用されたフィルターと互換性のあるものDictionary<Filter, string>をすべて見つける必要があります。KeyValuePairs

今、f1私は両方を見つけKeyValuePairsたいと思っていますが、2番目のオブジェクトでは条件を満たさないため、最初のKVPのみをf2見つけたいと思います+StartStartEndf2

EDIT Dictionary は、この質問の範囲外です。そうでなければなりません。比較のメカニズムだけが必要です。私はそれを行うために辞書を作成しません。私にとって重要なデータを保存するために必要です。

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

c# - C# で System.Math メソッドのジェネリック クラスを使用する方法

次のコード スニペットのようなものを実現しようとしています。

ここに画像の説明を入力

赤い線が示すように、動作しMath.MinIComparable<T>いないようです。このジェネリック クラスに対してMath.Minorを使用する必要があります。Math.MaxTどちらintdoubleまたはdecimalタイプになります。

どうすればこれを簡単に解決できますか?

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

c# - ソースから宛先タイプにキャストできません

PriorityQueueという名前のクラスを使用しています。名前のように、要素を比較してそれらを指定する必要があります。これは、優先度キュー内のComparerクラスです。

そして、これは私が比較しているものです

タイトルで言ったエラーは次のとおりです:ソースタイプから宛先タイプにキャストできませんCoordenadaとオブジェクトが同じではないことを認識しているため、キャストを試しましたが、どうすればよいかわかりませんか?

編集:これは、Coordenada内でCompareTo関数を使用することが想定されている優先キューを使用する方法です

priorityQueue はリストです。しばらくの間、そのリストに 2 ~ 3 個の異なる Coordenada オブジェクトを追加します。これは、各サイクルで最小の番号を検索し、必要な場所に到達するまでリストから削除するためです。

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

c# - IComparable の利点反変として?

私は分散の経験がほとんどありませんが、かなりの量を読んだ後、少なくとも基本的な概念を理解していると信じています (つまり、分散は、2 つのタイプの関係と、同様に投影された 2 つのタイプの関係の関係を表します)。IComparable<T>しかし、反変として定義したことの意義や利点を理解できないようです。一見すると、これは実際にはサブタイプ間の比較可能性を妨げているように見えます。誰かがこの問題に光を当てることができることを願っています。