問題タブ [linq-to-objects]

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 投票する
2 に答える
3041 参照

linq - オブジェクトのコレクションのコレクション プロパティを結合する linq-y の方法はありますか?

すみません、そのタイトルはただ痛いです。次のコード セグメントを 1 行に折りたたむ Linq to collections 拡張メソッドがあるかどうか疑問に思っています。

それを単一のステートメントにまとめることができる場合は、非常識な難易度で試してください。

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

linq - Linq to XML'Wherenotin'構文の問題

次のコードはコンパイルされません

BasicGroupsStringArrayに値がリストされていないnameという属性を持つrootnodeのImmediate子を削除することになっています。

このタスクの正しい構文は何ですか?

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

linq - Linq または Lambda 式を使用して複雑なオブジェクトの重複をチェックする

私は linq 式とラムダ式の学習を始めたばかりで、複雑なオブジェクト コレクションで重複を見つけるのに適しているようですが、少し混乱しており、誰かが私を幸せなコーディングへの道に戻してくれることを願っています.

私のオブジェクトは list.list.uniqueCustomerIdentifier のように構成されています

複合オブジェクト全体で重複する uniqueCustomerIdentifier がないことを確認する必要があります。重複がある場合は、どれが重複しているかを特定し、重複のリストを返す必要があります。

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

linq - 課題: この手続き型コードをエレガントに LINQ 化する

維持しなければならない顕著な特徴:

  • タイプ 1 のファイルは、タイプ 2 のファイルよりも重要です。つまり、タイプ 1 のファイルが (キー、値 1) の組み合わせにマップされ、タイプ 2 のファイルが (キー、値 2) の組み合わせにマップされる場合、(キー、値 2) ではなく(キー、値 1)を cookieMap に追加します。編集:Bevanが指摘したように、これは私の元の手続き型コードでは満足できません。
  • 次に、が高いCookieContainersCountほど優先度が高くなります。つまり、同じキーに対して 2 つの (キー、値) コンボがあり、両方とも同じファイルタイプからのものである場合、 が高い方を選択しますvalue.Count
  • ケースごとの例外処理は必須です。単一のファイル読み取りを台無しにするだけで、それに注意して続行できるようになります。

私の最善の試みは次のように始まりました:

しかし、それは洗練されておらず、そのコメント ブロックに記入するのは雌犬のように思えます。今のところ、私は手続き型にとどまることに満足していますが、人々が本当に賢い何かを思いつくことができるかどうかを見るのは楽しい挑戦かもしれないと思いました.

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

c# - 時系列の「つなぐ」

時系列データを処理するための単純な内部フレームワークを設計しています。LINQ が私の現在のおもちゃのハンマーであることを考えると、LINQ ですべてを叩きたいです。

クラス TimeSeries (Select()、Where() など) にメソッドを実装して、LINQ 構文を使用して時系列データを処理できるようにしたい

たとえば (A の x から x+10 を選択)、新しい時系列が得られます。

2 つ以上の時系列を組み合わせるのに最適な構文設計は何ですか? (from a in A from b in B select a+b) はネストされたループを表現するため、あまり良くありません。たぶんいくつか参加しますか?これは、暗黙の時間変数の結合に対応する必要があります。(私が念頭に置いているのは、lisp 'zip'関数に対応しています)


編集: いくつかの明確化が必要です。

時系列は、株価などの時間に依存する一種の機能です。時系列の組み合わせは、時間の関数としての 2 つの株価の差である可能性があります。

可能ですが、これを LINQ 構文を使用してきちんと表現できますか? 私はclass MyTimeSeries自分でLINQメソッドを実装することを期待しています。

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

c# - あるコレクションから別のコレクションのアイテムを削除する

2 つのコレクション (一般的なリスト) があります。それらを ListA と ListB と呼びましょう。

ListA にはタイプ A のアイテムがいくつかあります。ListB には、ListA のアイテムと同じ ID (ただしタイプは異なる) を持つタイプ B のアイテムがいくつかあります。ListA のアイテムと同じ ID を持つすべてのアイテムを ListB から削除したいと考えています。これを行う最善の方法は何ですか?オブジェクトへのLinqはうまく適合しますか? どのアルゴリズムを使用しますか?

ListA: ItemWithID1、ItemWithID2¨

ListB: ItemWithID1、ItemWithID2、ItemWithID3、ItemWithID4

編集: 元の質問で、 ListA と ListB に同じ型が含まれていないことを忘れていました。したがって、それらを比較する唯一の方法は、.Id プロパティを使用することです。これは、これまでに得た回答を無効にします。

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

vb.net - 文字列の長さが最も長いメンバー変数を持つオブジェクトを取得します

文字列であるメンバー変数を含むオブジェクトのジェネリックリストを考えると、最長の文字列を含むオブジェクトを取得するための最良の方法は何ですか?

すなわち。val1が私が比較している文字列であると仮定します:

「aba」の長さが最大であるため、返される必要があるのはオブジェクト2です。

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

asp.net - LINQ を使用した再帰的な制御検索

ASP.NET ページでオンになっているチェック ボックスを見つけたい場合は、次の LINQ クエリを使用できます。

チェックボックスが現在のコントロール コレクションにネストされている場合は問題なく動作しますが、最上位コントロールのコントロール コレクションにドリルダウンして検索を拡張する方法を知りたいです。

ここで質問されました:

ASP.NET で特定のインターフェイスを使用するコントロールを見つける

LINQ 以外の回答を受け取りました。拡張メソッドとして型と ID の再帰的制御検索の独自のバージョンを既に持っていますが、LINQ でこれを行うのがどれほど簡単か疑問に思いましたか?

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

c# - LINQとの混乱

いくつかの背景情報;

  • LanguageResource は基本クラスです
  • LanguageTranslatorResource と LanguageEditorResource は LanguageResource から継承します
  • LanguageEditorResource は IsDirty プロパティを定義します
  • LanguageResourceCollection は LanguageResource のコレクションです
  • LanguageResourceCollection は内部的に LanguageResources を保持しますDictionary<string, LanguageResource> _dict
  • LanguageResourceCollection.GetEnumerator() が返す_dict.Values.GetEnumerator()

LanguageEditorResource オブジェクトのみを含む LanguageResourceCollection _resources があり、LINQ を使用してダーティなものを列挙したいので、次のことを試しました。私の具体的な質問は太字で示しています。

  1. _resources.Where(r => (r as LanguageEditorResource).IsDirty)

    どちらも Where not 他の LINQ メソッドは Intellisense によって表示されますが、とにかくコーディングすると、「LanguageResourceCollection には 'Where' の定義が含まれておらず、拡張メソッドもありません...」と言われます。

    LanguageResourceCollection が IEnumerable を実装する方法によって、LINQ のサポートが妨げられるのはなぜですか?

  2. クエリを

    (_resources as IEnumerable<LanguageEditorResource>).Where(r => r.IsDirty)

    Intellisense に変更すると、LINQ メソッドが表示され、ソリューションがコンパイルされます。しかし、実行時に ArgumentNullException 「値を null にすることはできません。パラメータ名: ソース」が発生します。

    これは私の LINQ コードの問題ですか?
    クラスの一般的な設計に問題がありますか?
    LINQ が生成するものを掘り下げて、問題の内容を確認するにはどうすればよいですか?

この質問に対する私の目的は、特定の問題の解決策を得ることではなく、他の (LINQ 以外の) 手段を使用して解決する必要があるためです。むしろ、LINQ の理解を深め、設計を改善する方法を学ぶことです。私のクラスの LINQ でより適切に動作します。

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

c# - linq を使用してオブジェクトを更新する際のパフォーマンスの向上

カスタム オブジェクトの 2 つのリストがあり、もう一方のリストに別のフィールドのペアに一致するオブジェクトがある場合、一方のリストのすべてのオブジェクトのフィールドを更新したいと考えています。

このコードは問題をよりよく説明し、私が望む結果を生成します。ただし、20k の大きなリスト、および一致するオブジェクトを含む 20k のリストの場合、これにはかなりの時間がかかります (31 秒)。ジェネリック リストの Find(Predicate) メソッドを使用すると、これを最大 50% 改善できます。

望ましい結果は次のとおりです。アルファの合計 = 2、ベータの合計 = 4、ガンマの合計 = 8

しかし、これがさらに速くできるかどうかは疑問です。2 つのリストの内部結合は、結果セットで 20,000 個のアイテムをループする場合でも、ほとんど時間がかかりません。

私の質問は、T-SQL で行うようなことができるかどうかです。調整値で ISNULL(val,0) を使用した左結合からの UPDATE。