タグ付けされた質問 「linq」

言語統合クエリ(LINQ)は、.NET言語にネイティブデータクエリ機能を追加するMicrosoft .NET Frameworkコンポーネントです。[linq-to-sql]、[linq-to-entities] / [entity-framework]、[plinq]など、必要に応じてより詳細なタグの使用を検討してください

9
LINQ to Objectsとは機能しない
class Program { static void Main(string[] args) { List<Book> books = new List<Book> { new Book { Name="C# in Depth", Authors = new List<Author> { new Author { FirstName = "Jon", LastName="Skeet" }, new Author { FirstName = "Jon", LastName="Skeet" }, } }, new Book { Name="LINQ in Action", Authors …

5
LINQメソッドの実行時の複雑さ(Big-O)にはどのような保証がありますか?
私は最近LINQをかなり使い始めましたが、どのLINQメソッドの実行時の複雑さについてもまったく触れていません。明らかに、ここには多くの要素が関係しているので、議論をプレーンなIEnumerableLINQ-to-Objectsプロバイダーに限定しましょう。さらに、Funcセレクター/ミューテーター/などとして渡されたものはすべて安価なO(1)操作であると想定しましょう。 これは、すべてのシングルパス動作することを明らかに思える(Select、Where、Count、Take/Skip、Any/All、など)彼らは一度だけシーケンスを歩く必要があるので、O(n)となります。でもこれは怠惰の対象です。 より複雑な操作では物事は危険です。セットのような演算子(Union、Distinct、Except、など)を使用して作業GetHashCodeデフォルトでは(私の知る限り)、彼らが、一般的には、だけでなく、これらの操作のO(n)を作り、内部ハッシュ・テーブルを使用していると仮定するのが妥当と思われるので。を使用するバージョンはIEqualityComparerどうですか? OrderByソートが必要になるので、おそらくO(n log n)を調べています。すでに並べ替えられている場合はどうなりますか?私が言っOrderBy().ThenBy()て両方に同じキーを提供したらどうですか? 並べ替えまたはハッシュのいずれかを使用してGroupBy(およびJoin)を表示できました。どっち? ContainsはO(n)ですが、A ListはO(1)ですHashSet-LINQは基礎となるコンテナーをチェックしてスピードアップできるかどうかを確認しますか? そして本当の質問-これまでのところ、私は操作が高性能であることを信じてそれを取っています。しかし、それを利用することはできますか?たとえば、STLコンテナは、すべての操作の複雑さを明確に指定します。.NETライブラリ仕様のLINQパフォーマンスについて同様の保証はありますか? その他の質問(コメントへの回答): オーバーヘッドについてはあまり考えていませんでしたが、単純なLinq-to-Objectsについてはそれほど多くあるとは思いませんでした。CodingHorrorの投稿はLinq-to-SQLについて話しており、クエリを解析してSQLを作成するとコストが追加されることを理解できます。オブジェクトプロバイダーにも同様のコストがありますか?もしそうなら、宣言構文または関数構文を使用している場合とは異なりますか?

6
Entity Framework 4 Single()vs First()vs FirstOrDefault()
単一のアイテムをクエリするためのさまざまな方法の比較と、それぞれをいつ使用するかについて、時間の悪魔がいます。 誰かがこれらすべてを比較するリンクを持っていますか、またはなぜあなたが他のものを使うのかについての簡単な説明がありますか?私が知らないオペレーターがまだいますか? ありがとうございました。

9
NHibernateとLINQ to SQL
実際のプロジェクトでどちらのテクノロジーも使用したことがない人として、これら2つがどのように互いに補完し合い、それらの機能がどの程度重複しているかを誰かが知っているだろうか?

5
LINQで日付が最も高いレコードのみを選択する方法
次のフィールドを持つ「lasttraces」というテーブルがあります。 Id, AccountId, Version, DownloadNo, Date データは次のようになります。 28092|15240000|1.0.7.1782|2009040004731|2009-01-20 13:10:22.000 28094|61615000|1.0.7.1782|2009040007696|2009-01-20 13:11:38.000 28095|95317000|1.0.7.1782|2009040007695|2009-01-20 13:10:18.000 28101|15240000|1.0.7.1782|2009040004740|2009-01-20 14:10:22.000 28103|61615000|1.0.7.1782|2009040007690|2009-01-20 14:11:38.000 28104|95317000|1.0.7.1782|2009040007710|2009-01-20 14:10:18.000 どうすれば LINQ to SQLで、すべてのAccountId(日付が最も大きいもの)の最後の最後のトレースのみを取得ですか?
117 c#  .net  linq  linq-to-sql 

5
List <T> ForEach()に複数のプロパティを設定しますか?
クラスを考える: class foo { public string a = ""; public int b = 0; } 次に、それらの一般的なリスト: var list = new List&lt;foo&gt;(new []{new foo(), new foo()}); 次のメソッド内で複数のプロパティを割り当てる場合、以下のようList&lt;T&gt; ForEach()にする簡単な方法はありますか?うまくいけば、私は少し厚くなっています。 // one property - easy peasy list.ForEach(lambda =&gt; lambda.a="hello!"); // multiple properties - hmm list.ForEach(lambda =&gt; new Action(delegate() { lambda.a = "hello!"; lambda.b …
117 c#  linq 

5
リストにリストが含まれているlinq
linqを使用して、属性のリストが別のリストと一致するアイテムのリストを取得するにはどうすればよいですか? 次の簡単な例と疑似コードを見てください。 List&lt;Genres&gt; listofGenres = new List&lt;Genre&gt;() { "action", "comedy" }); var movies = _db.Movies.Where(p =&gt; p.Genres.Any() in listofGenres);
117 c#  linq 


14
EFでDateTimeの日付コンポーネントのみを比較する方法は?
2つの日付値があります。1つは既にデータベースに保存されており、もう1つはユーザーがDatePickerを使用して選択しました。ユースケースは、データベースから特定の日付を検索することです。 以前にデータベースに入力された値には常に12:00:00の時間コンポーネントがありますが、ピッカーから入力された日付には異なる時間コンポーネントがあります。 日付コンポーネントのみに関心があり、時間コンポーネントは無視したいと思います。 C#でこの比較を行う方法は何ですか? また、LINQでこれを行う方法は? 更新:LINQ to Entitiesでは、以下が正常に機能します。 e =&gt; DateTime.Compare(e.FirstDate.Value, SecondDate) &gt;= 0

4
LINQ to Entitiesがメソッドを認識しない
linqクエリを実行しようとすると、次のエラーが発生します。 LINQ to Entitiesは 'Boolean IsCharityMatching(System.String、System.String)'メソッドを認識せず、このメソッドはストア式に変換できません。 私は以前の多くの質問を読んだことがありますが、人々が同じエラーを受け取る場合、これを正しく理解できれば、LINQ to Entitiesはlinqクエリ式全体をサーバークエリに変換する必要があるため、外部メソッドを呼び出すことができません初期化。シナリオをうまく機能させることができず、脳が溶け始めているので、誰かが私を正しい方向に向けてくれることを期待していました。私たちはEntity Frameworkと仕様パターンを使用しています(そして私は両方とも初めてです)。 仕様を使用するコードは次のとおりです。 ISpecification&lt;Charity&gt; specification = new CharitySearchSpecification(charityTitle, charityReference); charities = charitiesRepository.Find(specification).OrderBy(p =&gt; p.RegisteredName).ToList(); これがlinq式です。 public System.Linq.Expressions.Expression&lt;Func&lt;Charity, bool&gt;&gt; IsSatisfied() { return p =&gt; p.IsCharityMatching(this.charityName, this.charityReference); } IsCharityMatchingメソッドは次のとおりです。 public bool IsCharityMatching(string name, string referenceNumber) { bool exists = true; if (!String.IsNullOrEmpty(name)) { if …

7
LINQ関数の順序は重要ですか?
基本的に、質問のように... LINQ関数の順序はパフォーマンスの点で重要ですか?もちろん、結果は同じでなければなりません... 例: myCollection.OrderBy(item =&gt; item.CreatedDate).Where(item =&gt; item.Code &gt; 3); myCollection.Where(item =&gt; item.Code &gt; 3).OrderBy(item =&gt; item.CreatedDate); どちらも同じ結果を返しますが、LINQの順序が異なります。いくつかのアイテムを並べ替えると結果が異なることに気づき、それらについては気にしません。同じ結果を得るために、順序付けがパフォーマンスに影響を与える可能性があるかどうかを知ることが私の主な関心事です。そして、私が行った2つのLINQ呼び出し(OrderBy、Where)だけでなく、すべてのLINQ呼び出しについてもです。
114 c#  performance  linq 

10
List <T>からn番目ごとのアイテムを取得するにはどうすればよいですか?
.NET 3.5を使用してnおり、リストから* *番目のアイテムをすべて取得できるようにしたいと考えています。ラムダ式とLINQのどちらを使用してそれが実現されるかについては気になりません。 編集する この質問はかなりの議論を引き起こしたようです(これは良いことですよね?)。私が学んだ主なことは、あなたが何かをするためのあらゆる方法を知っていると思ったら(これほど簡単ですが)、もう一度考え直してください!
114 c#  linq  list  lambda 

13
データベーステーブルの列にリストを格納する方法
だから、あたりに関連する質問への答えMehrdad、私はそれを得る「適切な」データベース表の列がリストを格納していないこと。むしろ、上記のリストの要素を効果的に保持する別のテーブルを作成してから、直接または結合テーブルを介してそれにリンクする必要があります。ただし、作成するリストのタイプは、一意のアイテムで構成されます(リンクされた質問のフルーツとは異なります)例)。さらに、リスト内の項目は明示的に並べ替えられています。つまり、要素を別のテーブルに保存した場合、アクセスするたびに並べ替える必要があります。最後に、リストは基本的にアトミックです。リストにアクセスしたいときはいつでも、リストの一部ではなくリスト全体にアクセスしたいので、データベースクエリを発行して複数のリストを集めるのはばかげているようです。リスト。 AKXのソリューション(上記にリンク)は、リストをシリアル化してバイナリ列に格納することです。しかし、シリアル化と逆シリアル化について心配する必要があることを意味するため、これも不便に思われます。 より良い解決策はありますか?より良い解決策がない場合、なぜですか?この問題は時々発生するようです。 ...私がどこから来たのかを知らせるためのもう少しの情報。SQLとデータベースの一般的な理解を始めた直後に、LINQ to SQLに切り替えられました。オブジェクトがどのように動作するかを考えずにプログラミングオブジェクトモデルを扱うことを期待しているので、今は少し甘やかされています。照会またはデータベースに格納されます。 皆さんありがとう! ジョン 更新:それで、私が得ている最初の一連の答えで、「CSV / XMLルートに行くことはできますが、しないでください!」と表示されます。だから今私はその理由の説明を探しています。いくつかの良い参考文献を教えてください。 また、私が今何をしているのかをよりよく理解するために:私のデータベースには、(x、y)ペアのリストを持つFunctionテーブルがあります。(この表には、説明に影響しない他の情報も含まれます。)(x、y)ペアのリストの一部を見る必要はありません。むしろ、私はそれらすべてを取り、画面上にプロットします。ユーザーがノードをドラッグして値を変更したり、プロットに値を追加したりできるようにします。

8
配列内の値のインデックスを見つける
linqを使用して配列内の値のインデックスを検索できますか? たとえば、このループは配列内のキーインデックスを見つけます。 for (int i = 0; i &lt; words.Length; i++) { if (words[i].IsKey) { keyIndex = i; } }
113 c#  arrays  linq 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.