問題タブ [ilookup]
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# - ILookup対IGrouping
との違いを明確にするのに苦労してきましたが、ILookup<TKey, TVal>
今IGrouping<TKey, TVal>
正しく理解できているかどうか興味があります。LINQは、拡張メソッドIGrouping
を提供しながら、アイテムのシーケンスを生成することで問題を悪化させました。ToLookup
ですから、よく見るまでは同じように感じました。
これは次と同等です:
これはよく似ています:
私は次の例えで正しいですか?
- An
IGrouping<TKey, TVal>
は単一のグループ(つまり、キー付きシーケンス)でKeyValuePair<TKey, TVal>
あり、値が実際には(単一の要素ではなく)要素のシーケンスである場合に類似しています。 - An
IEnumerable<IGrouping<TKey, TVal>>
はそれらのシーケンスです(繰り返し処理したときに得られるものと同様です)IDictionary<TKey, TVal>
- Anは、値が実際には要素のシーケンスである
ILookup<TKey, TVal>
aに似ていますIDictionary<TKey, TVal>
linq - IGrouping から Lookup への LINQ 変換
タイプ ILookup の 2 つの変数があります。Union または Concat を使用してそれらの値を結合し、結果を同じ型の 3 番目の変数に代入したいと考えていました。Union と Concat はどちらも IGrouping を返します。IGrouping を ILookup に変換するのは非常に簡単なはずですが、私にはできません!!! :-( IGrouping は Key だけを公開するので、Lookup の 2 番目のパラメーターに苦労しています。
.net - .Net ILookup を平坦化する方法はありますかリストに?
拡張機能から作成されList<TElement>
たをフラット化する簡単な方法はありますか?ILookup<TKey, TElement>
IEnumerable<TElement>
例で更新
linq - Linq-ILookupを別のILookupに変換します
これは単純なはずですが、私はそれを行うための良い方法を考えることができません。ILookupを別のILookupにどのように変換しますか?たとえば、ILookupをコピー/クローンして、同じキーと同じグループを持つ別のILookupを作成するにはどうすればよいでしょうか。
これが私の足の不自由な試みです:
誰かがこれを改善できますか?
-ブライアン
linq - ILookupsの作成
複雑な式で生成されたILookupがあります。家系の名前で人を検索したとしましょう。(私たちの単純な世界モデルでは、姓は家族によって一意です)
これで、ビルド方法に興味のある2つのクエリがあります。
まず、名前でフィルタリングするにはどうすればよいですか?
しかし、ここにgermanFamilies
ありIEnumerable<IGrouping<string, Person>>
ます; 私がそれを呼び出すならばToLookup()
、私は最善の策はを得るでしょうIGrouping<string, IGrouping<string, Person>>
。私が賢くなり、最初に電話をかけようとするSelectMany
と、コンピュータが多くの不要な作業を行うことになります。この列挙を簡単にルックアップに変換するにはどうすればよいですか?
第二に、私は大人だけのルックアップを取得したいと思います。
ここで、2つの問題に直面しています。Grouping
型が存在しない(の内部内部クラスを除くLookup
)、そして存在したとしても、上記の問題が発生する可能性があります。
したがって、ILookupおよびIGroupingインターフェイスを完全に実装するか、コンピューターにばかげた量の作業を行わせる(すでにグループ化されているものを再グループ化する)以外に、既存のILookupを変更して、見逃した新しいものを生成する方法はありますか?
linq-to-objects - 値に基づいてlinqルックアップをフィルタリングする
linqルックアップをその値に基づいてフィルタリングしたいと思います。
ルックアップ:
これが私がこれまでに持っているもので、機能していないものです:
明確にするために:上記の都市インデックスリストに含まれている都市インデックスを持つすべての記事を取得したいと思います。
c# - 空のILookup
を返すメソッドがありますILookup
。場合によってはILookup
、早期終了として空を返したいことがあります。空を構築する最良の方法は何ILookup
ですか?
linq - Linq: 空の IGrouping を作成する
入力された一連の値を要約する関数を Linq を使用して作成したいと思います。関数は次のようになります。
問題は、着信シーケンスにそのキーの値が含まれていない場合でも、結果の IDictionary に default(TKey) のエントリが必要であるということです。これは純粋に機能的な方法で行うことができますか? (変更可能なデータ構造を使用していません。)
私が考えることができる唯一の方法は、辞書にパイプする前にルックアップで .Union を呼び出すことです。しかし、それには空の IGrouping を作成する必要があり、これは明示的なクラスなしでは可能ではないようです。これを行うエレガントな方法はありますか?
編集: TKey は値型であると想定できます。
c# - .GroupBy() はグループ化の順序を保証しますか?
動物の (順序付けられた) シーケンスがあるとします。
そして、最初の文字でグループ化します:
結果のシーケンスの sの要素はIGrouping
、入力シーケンスと同じ順序になりますか?
c# - C# ルックアップの最適化の提案は大歓迎です
私が必要とする目的のために機能する以下のコードがありますが、それをより速くすることができるという考えがあります。このコードを改善できるかどうか教えてください...
主な問題は、「データ」を数回クエリする必要があることです。代わりに使用できるショートカットがないことを確認する必要があります。