問題タブ [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.
c# - メソッド呼び出しに問題があり、正しい値が返される
問題のメソッド呼び出しは、最後にこの writeline 呼び出し内にあります
メソッドが含まれるレートクラスは次のとおりです
初期化時に次の変数に値を設定すると、値が返されますが、デフォルトのままにしておくと、書き込み行から常に 0 が返されます。
他のものを見る必要がある場合に備えて、残りはここにあります.
並べ替えについても質問があります。taxOwed の金額で並べ替える必要があるため、正しく機能しているとは思いませんが、現在は 0 であり、私の問題です。
c# - この場合、どのソート戦略を使用する必要がありますか?
映画が属するカテゴリの名前を表す文字列のリストがあります。以下のように PivotViewerStringProperty で使用するために、クラスでそのリストを定義し、List<String> および IComparable インターフェイスを実装します。
ここでのポイントは、映画は多くのカテゴリに属する必要があるということです。ピボットビューアを作成し、各カテゴリごとに映画のデータベースを並べ替えることができるように、並べ替え戦略が必要です。したがって、アプリケーションの実行中は、同じ映画を 2 つ以上のカテゴリで同時に表示する必要があります。
どのソート方法を使用すればよいですか?
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 順に並べ替えると、順序はEnumableB
1 番目、次にEnumableA
2 番目になります。
EnumableA
を実装するオブジェクトに格納するなどの解決策を考えていますIComparable
が、これには別のオブジェクトのコレクションを作成する必要があり、コストがかかります。
IComparable
それで、ソート可能になるように、インターフェイスとソートの実装を追加することは可能ですか、とにかくIEnuerable<char>
ですか?
c# - IComparable を使用してオブジェクトを比較する際の問題
ここに私が働こうとしているいくつかのコードがあります。1 つのセットのアイテムが他のセットのアイテムと一致しない場合、比較されたすべてのアイテムのリストに 0 が追加されます。最終的にリストに 0 以外の値が含まれていない場合は、最初のセットの項目が 2 番目のセットにまったく存在しないことを意味します。なんらかの理由で、結果のリストに間違った値が表示され続けるので、どこかにバグがあるはずです。それを見つけることができないだけです。
c# - IComparable IgnoreCase
IComparableタイプの2つの値を比較する関数を作成し、等しくない場合はスローします。基本的に、アサーションを作り直します。はい、私は車輪の再発明をしていることを知っています。
文字列を除いて正常に動作します。大文字と小文字を区別しないオプションを期待していました。「AA」と「aa」
Tが文字列の場合は特にこのメソッドをオーバーライドしたいので、String.Compareを使用して大文字と小文字を区別しません。文字列を無視するかどうかをユーザーが指定できるように、別のパラメーターを用意するのもよいでしょう(ただし、これはintのような他のタイプには役に立たないので、紛らわしい/悪いデザインのようです。ここで提案を受け付けています)。
これを行う良い方法はありますか?また、IComparableとは異なるタイプに変更することもできます。当初は、これが仕事に最適なインターフェイスだと思っていましたが、今では間違っていた可能性があることに気づきました。
c# - 2 つのカスタム オブジェクトの比較
Filter
場合によっては 1 つのプロパティ、場合によってはすべてのプロパティに従って2 つのオブジェクトを比較する最良の方法は何ですか? 私が持っていることを意味し、使用されたフィルターと互換性のあるものDictionary<Filter, string>
をすべて見つける必要があります。KeyValuePairs
今、f1
私は両方を見つけKeyValuePairs
たいと思っていますが、2番目のオブジェクトでは条件を満たさないため、最初のKVPのみをf2
見つけたいと思います+Start
Start
End
f2
EDIT Dictionary は、この質問の範囲外です。そうでなければなりません。比較のメカニズムだけが必要です。私はそれを行うために辞書を作成しません。私にとって重要なデータを保存するために必要です。
c# - C# で System.Math メソッドのジェネリック クラスを使用する方法
次のコード スニペットのようなものを実現しようとしています。
赤い線が示すように、動作しMath.Min
てIComparable<T>
いないようです。このジェネリック クラスに対してMath.Min
orを使用する必要があります。Math.Max
はT
どちらint
かdouble
またはdecimal
タイプになります。
どうすればこれを簡単に解決できますか?
c# - ソースから宛先タイプにキャストできません
PriorityQueueという名前のクラスを使用しています。名前のように、要素を比較してそれらを指定する必要があります。これは、優先度キュー内のComparerクラスです。
そして、これは私が比較しているものです
タイトルで言ったエラーは次のとおりです:ソースタイプから宛先タイプにキャストできませんCoordenadaとオブジェクトが同じではないことを認識しているため、キャストを試しましたが、どうすればよいかわかりませんか?
編集:これは、Coordenada内でCompareTo関数を使用することが想定されている優先キューを使用する方法です
priorityQueue はリストです。しばらくの間、そのリストに 2 ~ 3 個の異なる Coordenada オブジェクトを追加します。これは、各サイクルで最小の番号を検索し、必要な場所に到達するまでリストから削除するためです。
c# - IComparable の利点反変として?
私は分散の経験がほとんどありませんが、かなりの量を読んだ後、少なくとも基本的な概念を理解していると信じています (つまり、分散は、2 つのタイプの関係と、同様に投影された 2 つのタイプの関係の関係を表します)。IComparable<T>
しかし、反変として定義したことの意義や利点を理解できないようです。一見すると、これは実際にはサブタイプ間の比較可能性を妨げているように見えます。誰かがこの問題に光を当てることができることを願っています。