問題タブ [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# - ジェネリックスとIComparableの実装
私はジェネリックスに非常に慣れていないので、ジェネリックスになるだけでなく、文字列メンバー変数の説明を並べ替えることができる単純なクラスを作成しようとしています。
現時点では基本クラスがありますが、インターフェイスメンバーCompareTo()を実装しようとすると、上部にエラーが表示され、実装されていないことが示されます。ここでの問題は何ですか?
.net - ジェネリック クラスの Icomparable インターフェイスの実装
ジェネリック クラスのIComparable
インターフェイス メソッドを実装する方法がわかりません。CompareTo
にバインドするBindingProperty<T>
を作成するために使用されるというクラスがあります。問題は、このクラスによってインターフェイスが実装されていないため、Sort 操作を実行できないことです。比較の結果は、'Value' が T 型であるクラスのデータ メンバー 'Value' に依存します。DataGrid の列ヘッダーをクリックすると、メソッドが実装されていないという例外が発生します。List<BindingProperty<intOrString>>
DataGrid
IComparable
BindingProperty<T>
BindingProperty<T>
CompareTo()
このインターフェースを実装するには助けが必要です。を使用する必要がありIComparable<T>
ますか? はいの場合、どうすればよいですか?
よろしくお願いします
c# - IComparable を使用してリストがソートされない
これは私の抽象基本クラスです:
このクラスは Person を表し、BaseDataModel クラスから継承します。
しかし、sort() メソッドを使用してリストをソートしようとすると、機能しません。2 つのオブジェクトを含む並べ替えられたリストを返しますが、それらのオブジェクトのすべてのプロパティは null です。
ここで何が問題なのですか?
c# - 一般的な制約 -- どちらかまたは両方のケースでこの状況を修正する方法がわかりません
基本的に私は以下を持っています:
問題は、制約が異なっていても、同じ署名を持つメンバーを持つことができないため、これを行うことができないことです。ただし、制約がIComparable
ORのいずれかであると述べる方法はありませんIComparable<T>
。ですから、1つを選んでそれを使う以外に、ここで何をすべきかわかりません. そして、どちらを選んだとしても、それらは別のものであり、互いに継承していないため、もう一方を失うことになります (これは理にかなっています)。
両方を使用して達成する方法があるという点で、ここで何かが欠けていますか、それともどちらかを選択する必要がありますか (おそらく汎用バージョン)?
c# - コード コントラクト -- IComparable または IComparable を使用する場合、証明されていないことを要求/保証する
私は次の方法を持っています:
ここでの問題は、私の最後の要件が気に入らないことです。それは述べていますCodeContracts: requires unproven: upperBound.CompareTo(lowerBound) >= 0
。ここでこれを修正する適切な方法が本当にわかりません。比較値を実行するときに、実際に実際の lowerBound 値と upperBound 値があり、lowerBound 値が upperBound 値を超えていないことを確認する必要があります。
ああ、実際の < または > 演算子は使用できません。型 'T' には適用できないからです。
最後に、これは別の質問になる可能性があることは知っていますが、非常に関連しています...コード契約v1.4.50126.1を使用しているときにCA1062コード分析エラーが引き続き発生する理由を誰かが知っている場合は、修正する方法を教えてください:CA1062: Microsoft.Design : In externally visible method 'MyClass.IsBetween<T>(this IComparable<T>, T, T), validate parameter 'upperBound' before using it.
c# - インターフェイス オブジェクトのリストを並べ替える
インターフェイス IFoo を実装するクラスがいくつかあります。これらのクラスのオブジェクトのリストをテーブルに表示する必要があります。テーブル内の任意の列でソートできるようにしたいと考えています。したがって、テーブルのデータ ソースはList<IFoo>
.
私が遭遇した問題は、リストで使用されるオブジェクトを実装する標準的な方法でIComparable
はIComparer
静的メソッドが必要ですが、インターフェイスでは静的メソッドが許可されていないことです。したがって、質問はこれに要約されList<IFoo>
ます。
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 番目のセットにまったく存在しないことを意味します。なんらかの理由で、結果のリストに間違った値が表示され続けるので、どこかにバグがあるはずです。それを見つけることができないだけです。