問題タブ [linq]
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 について学ぶ
概要
このサイトで私がよく尋ねたものの 1 つがLINQです。私が尋ねた質問は広範かつ多様であり、多くの場合、その背景にはあまり背景がありません。そのため、Linq で得た知識を統合するために、LINQ について学び続けながら、追加情報で維持および更新する目的でこの質問を投稿しています。
また、LINQ について学びたいと考えている他の人々にとって役立つリソースになることを願っています。
LINQとは?
MSDNから:
LINQ プロジェクトは、言語に統合されたクエリ、セット、および変換操作を含む、.NET Framework の一連の拡張機能のコードネームです。C# と Visual Basic をクエリのネイティブ言語構文で拡張し、これらの機能を利用するためのクラス ライブラリを提供します。
これが意味することは、LINQ は、共通の構文を使用してさまざまなデータソースをクエリする標準的な方法を提供するということです。
LINQ にはどのような種類がありますか?
現在、Microsoft が提供するいくつかの異なる LINQ プロバイダーがあります。
- Linq to Objectsを使用すると、任意の IEnumerable オブジェクトに対してクエリを実行できます。
- オブジェクト指向の方法でデータベースに対してクエリを実行できるLinq to SQL 。
- XML ドキュメントのクエリ、読み込み、検証、シリアル化、および操作を可能にするLinq to XML 。
- Andreiが提案したLinq to Entities
- Linq からデータセットへ
他にもたくさんありますが、その多くはここにリストされています。
利点は何ですか?
- 複数のデータソースを照会する標準化された方法
- クエリのコンパイル時の安全性
- メモリ内オブジェクトでセットベースの操作を実行する最適化された方法
- クエリをデバッグする機能
では、LINQ で何ができるでしょうか。
ChookはCSV ファイルを出力する方法を提供します
Jeffは配列から重複を削除する方法を示します
Bob はデータテーブルから個別の順序付きリストを取得します
Marxidadは配列をソートする方法を示しますDana はLinq を使用したクイックソート
の実装を支援します
どこから始めれば?
GateKiller の質問からのリンクの要約を以下に示します。
Scott Guthrie は、彼のブログで Linq の紹介を提供していますMSDN
の LINQ の概要
ChrisAnnODellはチェックアウトすることを提案します:
LINQ を使用するには何が必要ですか?
Linq は現在、VB.Net 9.0 および C# 3.0 で利用できるため、完全なメリットを得るには Visual Studio 2008 以降が必要です。(いつでもメモ帳にコードを記述し、MSBuild を使用してコンパイルできます)
C# 2.0 で Linq のようなクエリを実行できるLinqBridgeというツールもあります。
LINQ を使用したヒントとコツ
この質問には、LINQ を使用するいくつかのトリッキーな方法があります
c# - 特定の名前を持つ現在のアセンブリでC#インターフェイスの実装を見つける方法は?
IStep
いくつかの計算を実行できるInterface という名前があります (「名詞の王国での実行」を参照)。実行時に、クラス名で適切な実装を選択したいと考えています。
.net - ジェネリック コレクションのページングに Linq を使用するにはどうすればよいですか?
System.Generic.Collections.List(Of MyCustomClass) 型のオブジェクトがあります。
整数変数 pagesize と pagenumber が与えられた場合、MyCustomClass オブジェクトの単一ページのみをクエリするにはどうすればよいですか?
c# - LINQ について何か不足していますか?
LINQ について何かが欠けているようです。私には、SQL の最も気に入らない要素をいくつか取り、それらを C# 言語に移して、他の用途に使用しているように見えます。
つまり、データベース以外で SQL に似たステートメントを使用する利点を理解できたということです。しかし、もし SQL を書きたいのなら、SQL だけを書いて C# から除外してはどうでしょうか? ここで何が欠けていますか?
linq - モックとIQueryable
NHibernateに基づくIRepositoryをテストしようとしたときに、問題が発生しました。
IQueryable<T>
特定の表現と引き換えに与えられたコレクションを返す方法で戻ってくることをモックする方法。誤解がある気がしIQueryable<T>
ます...
c# - XMLスキーマを使用したIntelliSenseforXElementオブジェクト
7月のMSDNマガジンの「IncreaseLINQQueryPerformance」という記事を読んで、著者はImports
、現在のプロジェクトでスキーマへのパスを提供するin VBを使用すると、XElementでIntelliSenseがオンになると述べています。提供されているコードでは、xelement.@name
属性値などを取得するなどのステートメントを使用しています。
私はこれをVBで自分で試したわけではありませんが、C#で使用したいと思います。これは実際にはLINQtoXSDのように見えます。
C#に同等のものはありますか?C#コード内で名前空間を使用することはできないようです。このステートメントusing
に相当するものはありません。Import
linq - NHibernate と LINQ to SQL の比較
実際のプロジェクトでどちらのテクノロジも使用したことがない人として、これら 2 つのテクノロジがどのように相互に補完し合い、機能がどの程度重複しているかを知っている人はいるでしょうか?
c# - LinqDataSource とページングを使用した GridView コントロールの合計行数
ページングを使用し、データのソースとして LinqDataSource を使用して、Gridview に表示されるアイテムの合計行数を取得する際に問題が発生しています。
私はいくつかのアプローチを試しました:
毎回 -1 を返します。
合計ではなく、現在のページのカウントのみが表示されます。
他の提案はありますか?
c# - IEnumerable のカウントを取得する最良の方法
コレクション内のすべてのアイテムを列挙せずに、IEnumerable コレクション内のアイテムの数を取得するための最良/最も簡単な方法は何ですか?
LINQ または Lambda で可能ですか?
c# - 今までで最もクールな C# LINQ/Lambda のトリックは?
C# の隠し機能に関する投稿を見ましたが、多くの人が linq/lambdas の例を書いているわけではないので...
これまでに見た/書いた C# LINQ および/またはラムダ/匿名デリゲートの最もクールな (最もエレガントな) 使用法は何ですか?
それも生産に入った場合のボーナス!