問題タブ [icomparer]

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

c# - C# SortedList、キーで値を取得

私はSortedListを降順で持っています。

独自の IComparer を使用せずに SortedList を作成すると、コードは正常に動作し、例外は発生しません。

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

c# - C#の要素の階層内での並べ替えの問題

ASP.NETのページで作業しています。このページは、フォーラムとまったく同じように動作します。ユーザーはエントリに返信できます。返信はItemReplyとして表されます。ユーザーがアイテムに返信すると、ParentIDはユーザーが応答しているItemReplyのIDに設定されます。

このコードは基本的に次の方法で実行されます。

順序と階層は正しく機能しているようです。ただし、SetLevelメソッドは正しく機能していません。SetLevelの目的は、基本的にUIの観点から応答をインデントする距離を決定するために使用されます。実証するために、次の階層を持つことを想像してください。

何らかの理由で、すべてのItemReply要素のレベルは1です。何が間違っているのですか?

ありがとうございました!

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

c# - List.BinarySearch() に比較を取るオーバーロードがないのはなぜですかIComparer に加えて?

List.BinarySearch()カスタムアイテムタイプで使いたい。カスタム型は実装されていませんIComparable<T>Comparison<T>代わりに、さまざまな時点でさまざまな基準でリストを並べ替えたいため、呼び出すいくつかの静的関数があります。さらに、並べ替えの方法は関数名で説明できるため、明確になると思います。ここで、リストに対してバイナリ検索を実行したいと思います。比較関数の 1 つを使用したかったのですが、 のみを受け入れるオーバーロードがないことがわかりましList.BinarySearch()た。オブジェクトを比較するためだけに別のクラスを用意するのはばかげているように思えるので、避けようとします。に加えて取るオーバーロードがないのはなぜですか? で既存の関数を使用する方法はありますか?Comparison<T>IComparer<T>IComparer<T>List.BinarySearch()Comparison<T>IComparer<T>Comparison<T>List.BinarySearch()

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

vb.net - リスト内のオブジェクトを一意でない値でソートする方法は?

保存されたキーワードで記事を分類しようとしています。あるカテゴリのキーワードのリストがあり、キーワード数が最も多いカテゴリを記事に割り当てたいと考えています。

そして、これはカテゴリごとに行われ、記事ごとに実行されます。この記事に最適なカテゴリを判断するために、リストを並べ替えようとしています。ただし、複数のカテゴリが最適であり、どのカテゴリにも当てはまらない可能性があります。したがって、これを実行しても役に立ちませんでした:

多分私はこれをすべて間違ってやっていますが、今のところ私は正しい道を進んでいると思います. (Category クラスにもデフォルトの比較がありますが、どちらも機能していませんでした。)

並べ替えが一意ではないために発生する可能性が最も高い並べ替えで例外が発生します。

私が得る例外は InvalidOperationException です: 配列内の 2 つの要素を比較できませんでした。これは、ArticleClass で作成した比較子を使用した場合です。

0 投票する
6 に答える
1094 参照

c# - C#配列リストを数字でソートする

こんにちは、これを含む配列の並べ替えが必要です。

しかし、私がこれを使用する場合:

出力は次のようになります。

しかし、私は出力が次のようになることはありません:

C#で/でそれを行う最も簡単な方法は何ですか??

そして、次のようにすると、英数字の並べ替えが機能しません。

型または名前空間「AlphanumComparatorFast」が見つかりませんでした。using ディレクティブまたはアセンブリ参照がありません

私が得るエラーです...

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

c# - 文字列を使用したカスタムIComparerの実装

たとえば、c#に文字列のコレクションがあります。

次に、これを並べ替えますが、IComparerメソッドが機能せず、見た目によって無限にループします。

基本的に私は"b"最初に来て、次に来る必要があります"c"、そして私は他の人の順序を気にしません。

これは私Comparer<string>Compare(string x, string y)メソッドを使用して可能ですか?

編集:コード

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

.net - コンペアラーを作成できません

クラスがあります

このクラスのオブジェクトのリストがあります:

このコレクションを SelectedDate で並べ替えたいと思います。私は試します:

その後

ただし、並べ替えではなく、要素を混合するだけです。なにが問題ですか?

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

c# - インターフェイスのプロパティに基づくIComparer

抽象クラスTransportMeansから派生し、1つのプロパティのみを含むインターフェイスPrivateMeansを実装するクラスCarを作成しました。

クラスを実装したいのですが、プロパティ容量に従ってクラスCarのオブジェクトを並べ替えます。インターフェイスIComparerを使用してこれを実行したいと思います。

ただし、追加のクラスCarComparerを次のように宣言すると、次のようになります。

エラーが発生しました:

エラー1「MeansOfTransport.CarComparer」はインターフェイスメンバー「System.Collections.Generic.IComparer.Compare(MeansOfTransport.Car、MeansOfTransport.Car)」を実装していません。

何が問題ですか?

さらに、タイプ定義(車)なしでIComparerを使用することは許可されていません。なんで?

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

c# - MVC プロジェクトでデフォルトの IComparer を変更するにはどうすればよいですか?

ASP.net MVC3 プロジェクトには、IComparer インターフェイスのカスタム実装があります。文字列をソートするときに、デフォルトで比較ツールを使用したいと考えています。プロジェクトのデフォルトの IComparer を変更するにはどうすればよいですか?

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

c# - 射影比較子を持つLINQ OrderBy匿名オブジェクト

OrderByLINQ ステートメントで匿名オブジェクトを操作しようとしましたが、今のところ失敗しています。

私はすでにこれらをチェックしました:
Anonymous IComparer implementation
C# linq sort - IComparer をインスタンス化する簡単な方法
C# の特定のフィールドでオブジェクトの配列をソートする方法は?

さまざまなアプローチを試すのに数時間を費やしましたが、欠けているものがあるはずです。

次のクラスがあるとします。

Andproductsはこれらのオブジェクトのリストです。

匿名オブジェクトで機能するように、この LINQ ステートメントを完成させるにはどうすればよいですか?
明確にするために、私はこれを別の方法で行うことができることを知っていますが、この特定の例を機能させる方法を学ぶことに非常に興味があります.

次の実装で可能になるはずですProjectionComparer:

これを行う方法はありますか?

アップデート:

私はこれについて簡単なパフォーマンス テストを行いました - 匿名の比較ソリューションと標準の orderby.thenby の比較で、匿名のソリューションは非常に遅いようです。