問題タブ [iorderedenumerable]
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.
linq - LinqはIOrderedEnumerableメソッドの後にIEnumerableメソッドをどのように使用しますか?
Linqでは、拡張メソッドWhere
はコレクションを返しIEnumerable
ますが、並べ替えメソッドOrderBy
はコレクションを返しIOrderedEnumerable
ます。
したがって、で終わるOrderBy
(つまり、を返すIOrderedEnumerable
)クエリがある場合、後でメソッドを追加することはできません。Where
コンパイラは、に渡される型について文句を言いWhere
ます。
ただし、すべてを1つのクエリで実行する場合は、問題ありません。
Reflectorでアセンブリを調べて、コンパイラがいずれかの操作を並べ替えているかどうかを確認しましたが、そうではないようです。これはどのように作動しますか?
linq - メソッドがIOrderedEnumerableを返すことは有利ですか?IEnumerableの代わりに?
メソッドがIEnumerableではなくIOrderedEnumerableを返すことが有利でしょうか?
linq - IOrderedEnumerableおよび防御プログラミング
私は防御的なプログラミングが好きです。私は例外スローが嫌いですが、これは私の質問の主題ではありません。
列名を使用して注文を実行できるように、linQの拡張機能を採用しました
防御プログラミングでは、列名が無効な場合、このメソッドは指定された列挙可能オブジェクトを返します。
次に、ThenByを使用して2次ソートを実行する必要があります。だから私はその署名が必要です:
IOrderedEnumerableを返す必要があります。私の問題は、防御的なプログラミング機能を維持することです。列名が無効である場合、指定されたセットを返す必要があります。
これを行うためのクリーンな方法はありますか?私が考えているのは一種のトリックです:
- リフレクションを使用して、最初に見つかったプロパティで並べ替えます。これは、プロパティが並べ替えが許可されていない可能性があるため危険です。
- 独自のIOrderedEnumerableを実装します。これは、IQueryableまたはIListで順序付けを実行し、次に他のLinQ操作を実行するため、リスクもあります。そのため、副作用が心配です。
そしてアドバイス/提案?ありがとう
sql-server - Linq-to-SQL でレコードを並べ替えるためのクエリ パフォーマンスを向上させる
クエリを使用して customers という名前のテーブルからレコードを取得しています。レコードをaddress, housenumber, surname, name
.
最初にこれを使用しました(DataTable)
今私はこれを使用します:
それはパフォーマンスを向上させる正しい方法ですか...?
OrderedEnumerableRowCollection
vsの (欠点) 利点は何DataTable
ですか?
これを行う方法を教えてください。
c# - IOrderedEnumerable をいつ返すか?
IOrderedEnumerable
純粋にセマンティック値の戻り値の型として使用する必要がありますか?
たとえば、プレゼンテーション レイヤーでモデルを使用する場合、コレクションに順序付けが必要か、または既に順序付けられているかをどのように知ることができますか?
ORDER BY
リポジトリがストアド プロシージャを句でラップする場合はどうでしょうか。リポジトリは を返す必要がありますIOrderedEnumerable
か? そして、それはどのように達成されますか?
.net - .NetのIOrderedEnumerable.ThenBy()はどのように機能しますか?
ThenByが.Netでどのように機能するかを理解したいと思います。(私はそれを使用する方法を知っています、私はマイクロソフトがそれをどのように実装したかを理解していません!)
ドキュメントによると、string_list.OrderBy(Function (x) x.length).ThenBy(Function (x) x)
文字列のリストを長さ順に出力し、次にアルファベット順に出力する必要があります。どうすればうまくいくでしょうか?!?最初の並べ替えは長さによるものです。2番目の並べ替えでは、最初の並べ替えを元に戻す必要があります。
このコードを想定します:
これが私が使用せずに最後の行を実装しようとしているところですThenBy
:
ここでいくつかの魔法が起こっています...e.GetPreviousKeySelector()関数はありますか?実際、IOrderedEnumerableを返す関数を作成することすらできません。
c# - OrderBy、ThenBy による並べ替え
以前に並べ替えられた列に応じて、テーブルのいくつかの列を並べ替えようとしています。最初の 2 つの列では正常に機能します。しかし、3 番目の列を並べ替えるとすぐに、2 番目の列の並べ替えが失われます。今のところ私の知る限り、foreach ループに問題があるはずです。ソート用のコードは次のとおりです。
何か案は?
更新:さらに情報を追加するかもしれません:
- @param zusortierendeListe: これは並べ替えたいリストです。オブジェクトのリストです
- @param sortierung: これは、昇順または降順で並べ替えたい方向です
オブジェクト自体は Tabledata のリストです
c# - OrderByを使用せずにIEnumerableをIOrderedEnumerableに変換することは可能ですか?
SortMethod
列挙型で指定されたいくつかのタイプの並べ替え(つまり、さまざまなプロパティによる並べ替え)に基づいてIQueryableを並べ替える拡張メソッドがあるとします。
sortMethod
isの場合null
(つまり、値の順序を気にしないように指定されている場合)、デフォルトのプロパティで順序付けする代わりに、IEnumerator
値を「順序付けられた」ものとして渡す方法はありますか?実際の並べ替えを実行する必要がありますか?
この拡張機能を呼び出して、追加のThenBy
注文を実行できるようにしたいと思います。
c# - IOrderedEnumerable.Select() は要素の順序を保持しますか?
C#では、保持要素順序Select()
の要素を射影するために使用しますか?IOrderedEnumerable
- もしそうなら、どうして では
IEnumerable
なく を返すのIOrderedEnumerable
ですか? - そうでない場合、どうすればこれを達成できますか (を使用する以外に
foreach
)?
この質問は、この質問の複製ではないことに注意してSelect()
くださいDistinct()
。
編集
はい、LINQ to Objects です。ところで、実際に SQL DB をクエリしている場合、答えは異なるでしょうか?
c# - IOrderedEnumerable の末尾にコレクションを追加
現在、IOrderedEnumerable にロードする必要がある一連の構成ファイルがあります。現在のアプローチは次のようになります。
問題は、Items
同等にする代わりitems.OrderBy(x => x.Attribute("ID").Value)
に、現在存在する IOrderedEnumerable の最後に結合したいので、新しい XDocument をロードしてすべての要素を取得するたびに上書きしないことです。どうすればいいですか?
編集:変更すると、これItemsLength += Items.Count();
が正しく機能しなくなることはわかっています。それは私が自分で変えるものです。