問題タブ [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負の数に使用するとスタックオーバーフローが発生しますか?
これは厄介な問題です。次のように簡単なクイックソートを実装しました..
出力: 1,2,3,4,5,6,7,8,9
しかし、ソートされていないリストで負の数を使用すると、stackoverflow エラーが発生します。
たとえば、ソートされていないリスト = 新しいリスト { 1, 3, 5, 7, 9, 8, 6, 4, 2, -1 }; 今、スタックオーバーフローがあります..
どうしたの?なぜこれが機能しないのですか?
c# - Taxpayer クラスに Icomparable を実装して、taxOwed に基づいてソートする
Icomparable CompareTo を実装して、納税義務に基づいて Taxpayer オブジェクトを比較することができません..誰かが Taxpayer クラスの icomparable 実装を手伝ってくれますか?? ここのように icomparable を実装したい - インターフェイスは私にとって新しいトピックです.助けてください http://www.dotnetperls.com/icomparable
.
.net - なぜ Icomparable インターフェイスが必要なのですか?
インターフェイスを実装する代わりに、2 つのオブジェクトを比較する独自の方法を使用できることを明確にしてください。また、インターフェイスの重要性は何ですか?
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>
ます。