問題タブ [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 に答える
573 参照

linq-to-entities - Linq to Entities OrderBy()のカスタムIComparerと同等の機能を実装するにはどうすればよいですか?

Linq to Entities OrderBy()のカスタムIComparerと同等のものを実装するにはどうすればよいですか?

カスタム比較機能は、 MSDNドキュメントに記載されているように、LinqtoEntitiesではサポートされていません。

IComparerLINQ to Entitiesでは、比較対象をデータソースに変換できないため、を受け入れるものを除いて、ほとんどのLINQ順序付け方法がサポートされています。詳細については、「LINQtoEntitiesクエリの標準クエリ演算子」を参照してください。

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

javascript - アイテムを比較するために関数を渡す方法は?

比較子を関数に渡したいのですが、Javascriptでこれが可能かどうかわかりません。これを行うC#にはIComparerの概念があります。これはJavascriptで実行できますか?

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

vb.net - Dictionary を SortedDictionary に変換した後のカスタム オブジェクトの iComparer の実装

IComparer メソッドの実装に問題があります。基本的に、2 つのカスタム オブジェクトのプロパティを比較したいと考えています (プロパティは整数型です)。

dE は Dictionary(Of String, customObj) です prTabIndex は customObj のプロパティであり、整数型です (これらはすべての例に当てはまります)

さらに検索した後、リストアプローチ、LINQ の利用、C# 3.0 機能の使用という 3 つのことを示唆するこのスレッドを見つけました。ただし、vb であるため、最適なアプローチが何であるかはわかりません。

私は3つの異なる方法を試しました:

...自分の IComparer 実装をローリング:


...リストの並べ替え (これはうまくいくと思います - このスレッドを少しアカデミックにしています)。


...または、SortedDictionary への変換に直接ラムダ関数を組み込みます。

VS2008 では 'dE.ToDictionary...' (行末まで) に下線が引かれ、マウスをホバーした場所に応じて 2 つのメッセージが表示されることに注意してください。

1) 「拡張メソッド '署名' の型パラメーターのデータ型 'System.Linq.Enumerable で定義された署名として、これらの引数から推論できません。データ型を明示的に指定すると、このエラーが修正される場合があります。 「ToDictionary」にカーソルを合わせます。

2) ネストされた関数は、デリゲート '署名' と同じ署名を持っていません。"ToDictionary" の後にカーソルを置いているときに表示されます。

確かに、ラムダ関数は初めてです。

Q1) 実装ごとにどれくらい離れていますか?

Q2) 計算コストが最も低いのはどれですか? なんで?

Q3) 計算コストが最も高いのはどれですか? なんで?

敬具、

-sf

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

c# - C# で IComparer の実装を提供し、実行時にアプリケーションに「コンパイル」することは可能ですか?

こんにちは皆さん、私がやりたいことがリモートで可能かどうかはわかりませんが、それを説明するために最善を尽くします。提案/アイデアを本当に感謝します.

私が持っていると想像してください:-

これらのクラスを使用すると、ユーザーはユーザー定義の属性を作成し、定義済みの並べ替えアルゴリズムを選択して値を並べ替えることができますユーザーによって選択されました。これは、単純なアルファベットの昇順ソートなど、比較が事前にわかっている場合に適しています。

ただし、より多くのロジックが必要であり、それが事前にわからない状況がいくつかあります。たとえば、文字列「4DFG5ET」は、ソートが必要な日付をコード化している可能性があり、同様のロジックなどを持つ他の属性が存在する可能性があります。

可能であれば、IComparer の実装を書き続けたくないので、何らかの方法で IComparer の実装を実行時にテキスト ボックスまたはファイルに定義し、プログラムで何らかの方法でコンパイルするか、永続化して利用できるようにしたいと考えています。属性のソートに使用できる比較の選択。

これにアプローチする方法について何か提案はありますか?

少し曖昧な質問であることはわかっているので、何かを明確にしてほしいかどうか尋ねてください。

よろしくお願いします

アレックス

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

vb.net - VBでの汎用IComparerの実装

自分のクラス「Stellungen」の汎用IComparerを実装するクラスを作成しようとしています(これは、チェスやチェッカーボードのような位置に変換されます)。

これは私が得たものです:

問題は、関数内でクラスのどのフィールドにもアクセスできないことです。xから始める場合。Intellisenseは、.Equals、.GetHashCodeのみを提供します。これは、インスタンスではなく、型で取得するメソッドです。Visual Studio 10もこれを強調しています。関数の定義では、ビット「xasStellung」と「yasStellung」は水色で書かれています。つまり、これはタイプであり、実際のオブジェクトではありません。

だから...私は何をしますか?クラス内で比較したいものにアクセスするにはどうすればよいですか?ありがとう!

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

c# - Windows.Forms.ListView を 2 列目で並べ替える

ListView アイテムを 2 列目のコンテンツ (「オンライン」または「オフライン」のいずれか) で並べ替えたいと考えています。並べ替えはコード内の特定の 1 か所でのみ行われるため、ソリューションは柔軟である必要はありません。それ以上に、実装が簡単で、アプリケーションの残りの部分に大きな変更を必要としない必要があります。

IComparer を実装したクラスを作成し、listView.ListViewItemSorter に割り当てようとしましたが、うまくいきません。

コードサンプル:

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

c# - IComparer を使用した xml のノードの並べ替え/順序付け

xml でノードを並べ替える必要があります。アルファベット順に並べ替える次のコードがあります。ただし、文字列は許可されていますが、データの多くは数値です。IComparer をセットアップして、データを他の場所に表示したいときに正しく並べ替えます。

メソッド呼び出しで IComparer を使用する方法を見つけましたが、.OrderBy(x => x, new CustomComparer()) それを xml で動作させる方法がわかりませんでした。私がオンラインで読んだことから、クエリ構文から IComparer を呼び出せるようには見えません。

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

c# - IComparer と SortedDictionary で起こりうる問題

SortedDictionaryそのキーがファイル/フォルダーパスを表す文字列である場所を作成しようとしています。パスの深さに基づいてその辞書をソートしようとしています。私の基準は、各パスのスラッシュの数をチェックし、スラッシュが最も多いパスを辞書の先頭に配置するだけです。

私の問題は、検出できない奇妙な問題の場合、辞書にまったく同じ複数のキーがある可能性があることです。何時間もデバッグした後の問題は、メソッドを呼び出すとき、または辞書に新しい値を追加するときに、 「時々」私のIComparer実装が辞書内のすべてのエントリをループしないことです。ContainsKey例外などはありません。

これは私のコードです..(少し長い):

Main() の最後には、_dExcludedPaths互いに正確に等しい 2 つのキーがあります。

誰かがここで何が起こっているのかを理解するのを助けることができますか?辞書に重複キーを持つことはどのように可能ですか??

ありがとう

0 投票する
5 に答える
338 参照

c# - さまざまな基準による IComparer の並べ替え

私は を持っていて、最初に が赤のアイテム、次にが赤のアイテム、最後に残りのアイテムになるListViewように並べ替えようとしていますが、それらはすべてグループ内の名前で並べ替える必要があります。BackColorForeColor

私はこのコードを書きましたが、同じアイテムのチャンクが全体的に分離されています:

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

c# - Linq と IComparer を使用して ObservableCollection を注文する

別のバインディングを作成する必要がないため、ObservableCollection をアルファベット順に並べたいと思います。Linq と OrderBy メソッドを使用できることを見てきました。複雑なデータ (リストを他のリストにまとめる) を整理する必要があるため、個人用の IComparer も使用したいと思いますが、VS は独自の比較器を使用できないと言っています。

(私のVSはフランス語なので、エラーのリンクを教えてください)

http://msdn.microsoft.com/en-gb/library/hxfhx4sy%28v=vs.90%29.aspx

何か案は ?

そして、私自身の比較者(すでにテストされています)


回答ありがとうございます。とにかく、私には別の問題があります。マイケルが言ったように、私はより複雑な比較を使用しますが、別のエンティティを対象としています。このエンティティは階層ツリーで表示され、オブジェクトには同じタイプの他のオブジェクトのリストが含まれる場合があります。

DBにアクセスできないため、GraphicObjectをテストできませんでした(現時点ではオブジェクトがありませんでした)。VideoEntity のテストでは、ObservableCollection が希望どおりに並べ替えられていないようです (別のものを作成します)。アルファベット順に逆にしたいのですが、うまくいきません。


PS : ところで、私は DependancyProperty に基づいて行動しています。それは正しい方法ですか?(私はWPFが初めてです)