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

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

8
LINQ:ありませんvsすべてありません
多くの場合、提供された値がリスト内の値と一致するかどうかを確認したい(たとえば、検証するとき): if (!acceptedValues.Any(v => v == someValue)) { // exception logic } 最近、ReSharperがこれらのクエリを簡略化して次のことを要求することに気づきました。 if (acceptedValues.All(v => v != someValue)) { // exception logic } 明らかに、これは論理的に同一で、おそらく少し読みやすくなります(多くの数学を実行した場合)、私の質問は次のとおりです。これはパフォーマンスに影響を与えますか? それはあるべきように感じます(すなわち.Any()、それは短絡.All()するように聞こえますが、そうではないように聞こえます)が、私はこれを実証するものは何もありません。クエリが同じように解決されるかどうか、またはReSharperが私を迷わせているかどうかについて、より深い知識を持っている人はいますか?
272 c#  .net  performance  linq  resharper 



13
流暢な表現とクエリの表現—他のものより優れている点はありますか?
LINQは、ジェネリック以降の.NETの最大の改善点の1つであり、時間とコード行を大幅に節約できます。ただし、流暢な構文は、クエリ式構文よりもはるかに自然に思えます。 var title = entries.Where(e => e.Approved) .OrderBy(e => e.Rating).Select(e => e.Title) .FirstOrDefault(); var query = (from e in entries where e.Approved orderby e.Rating select e.Title).FirstOrDefault(); 2つの間に違いはありますか、それとも他のものに対して特定の利点がありますか?
255 c#  linq 


7
2つの式を組み合わせる(Expression <Func <T、bool >>)
タイプの2つの式がExpression&lt;Func&lt;T, bool&gt;&gt;あり、これらのOR、AND、またはNOTを使用して、同じタイプの新しい式を取得したい Expression&lt;Func&lt;T, bool&gt;&gt; expr1; Expression&lt;Func&lt;T, bool&gt;&gt; expr2; ... //how to do this (the code below will obviously not work) Expression&lt;Func&lt;T, bool&gt;&gt; andExpression = expr AND expr2
249 c#  linq  lambda  expression 

12
単一の結合で複数のフィールドをLINQで結合する方法
複数のフィールドで結合を行うLINQ2DataSetクエリを実行する必要があります( var result = from x in entity join y in entity2 on x.field1 = y.field1 and x.field2 = y.field2 私はまだ適切な解決策を見つけました(where句に追加の制約を追加できますが、これは適切な解決策とは程遠いか、この解決策を使用しますが、それは等価結合を前提としています)。 LINQでは、単一の結合で複数のフィールドに結合できますか? 編集 var result = from x in entity join y in entity2 on new { x.field1, x.field2 } equals new { y.field1, y.field2 } 上記の等価結合を前提として参照したソリューションです。 さらに編集 私の最初の例が等結合であったという批判に答えるために、私はそれを認めます。私の現在の要件は等結合であり、上記で参照したソリューションをすでに採用しています。 ただし、私はLINQでどのような可能性とベストプラクティスを採用しているのかを理解しようとしています。すぐにテーブルIDで日付範囲クエリ結合を行う必要があり、その問題を先取りしていました。where句に日付範囲を追加する必要があるようです。 …
244 c#  linq  join 

6
トップ5を選択するLINQクエリ
LINQクエリがあります。 var list = from t in ctn.Items where t.DeliverySelection == true &amp;&amp; t.Delivery.SentForDelivery == null orderby t.Delivery.SubmissionDate select t; このクエリを変更して、データベースから5つの結果のみを選択するにはどうすればよいですか?
234 c#  linq 



13
LINQでリスト内のアイテムを検索しますか?
ここに、文字列のリストから項目を見つける簡単な例があります。通常、私はforループまたは匿名デリゲートを次のように使用します。 int GetItemIndex(string search) { int found = -1; if ( _list != null ) { foreach (string item in _list) // _list is an instance of List&lt;string&gt; { found++; if ( string.Equals(search, item) ) { break; } } /* use anonymous delegate string foundItem = _list.Find( delegate(string item) { …
226 c#  linq 

3
groupbyおよびcountを使用したLINQ
これはかなり単純ですが、私は途方に暮れています:このタイプのデータセットを考えると: UserInfo(name, metric, day, other_metric) そして、このサンプルデータセット: joe 1 01/01/2011 5 jane 0 01/02/2011 9 john 2 01/03/2011 0 jim 3 01/04/2011 1 jean 1 01/05/2011 3 jill 2 01/06/2011 5 jeb 0 01/07/2011 3 jenn 0 01/08/2011 7 メトリックが順序(0、1、2、3 ..)でカウントされる合計回数とともに一覧表示するテーブルを取得したいと思います。したがって、このセットからは次のようになります。 0 3 1 2 2 2 3 1 私はLINQ構文に取り組んでいますが、groupbyを配置してカウントする場所に行き詰まっています。 POST …
221 c#  linq  group-by 

2
辞書を返すLINQクエリ<string、string>
LINQを使用してクエリを実行して個別の値を取得し、結果としてDictionary &lt;string、string&gt;を取得するMyClassのコレクションがありますが、自分より簡単にそれを行う方法を理解できません以下に行っています。私の結果としてDictionary &lt;string、string&gt;を取得するために使用できる、よりクリーンなコードは何でしょうか? var desiredResults = new Dictionary&lt;string, string&gt;(StringComparer.OrdinalIgnoreCase); var queryResults = (from MyClass mc in myClassCollection orderby bp.SomePropToSortOn select new KeyValuePair&lt;string, string&gt;(mc.KeyProp, mc.ValueProp)).Distinct(); foreach (var item in queryResults) { desiredResults.Add(item.Key.ToString(), item.Value.ToString()); }
218 c#  .net  linq  dictionary 


11
LINQシングルvsファースト
LINQ: クエリが単一のレコードを返すことが確実であることがわかっSingle()ているFirst()場合は、演算子を使用する方が効率的ですか? 違いはありますか?
214 .net  linq 

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