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

言語統合クエリ(LINQ)は、.NET言語にネイティブデータクエリ機能を追加するMicrosoft .NET Frameworkコンポーネントですが、Java、PHP、JavaScript、およびActionScript用のポートが存在します。

5
for vs. foreach vs. LINQ
Visual Studioでコードを書くとき、ReSharper(神のご加護を!)はしばしば、古い学校のforループをよりコンパクトなforeach形式に変更することを勧めます。 多くの場合、この変更を受け入れると、ReSharperは一歩前進し、光沢のあるLINQ形式で再度変更することを提案します。 だから、私は疑問に思う:これらの改善には、いくつかの本当の利点がありますか?非常に単純なコード実行では、速度の向上は見られませんが(明らかに)、コードがますます読みにくくなっているのがわかります。
86 c#  linq 

11
抽象化(LINQなど)の使用がなぜタブーなのですか?[閉まっている]
私は独立した請負業者なので、新しいギグのために年に3〜4回インタビューしています。私は今、そのサイクルの真っin中にあり、インタビューがうまくいったように感じたにもかかわらず、機会を求めて断られました。今年も同じことが何度か起こりました。 今、私は完璧な人ではなく、すべての組織に適しているとは思っていません。とはいえ、バッティング平均は通常よりも低いので、最後の面接者に建設的なフィードバックを丁寧に尋ねると、彼は配達しました! インタビュアーによると、主なことは、低レベルの有機的に成長したアルゴリズムではなく、抽象化(LINQなど)の使用に過度に傾いているように見えたということです。 表面的には、これは理にかなっています-実際、これらのインタビューでもLINQについて口説き、インタビュアーが.NETであってもLINQについてあまり知らなかったため、他の拒否も理にかなっていますみんな)。 だから今、この質問が残っています:「巨人の肩の上に立つ」ことになっていて、私たちが利用できる抽象化(LINQのような)を使用することになっているなら、なぜそれをタブーと考える人がいるのでしょうか?追加のコストなしで同じ目標を達成する場合、「既製」のコードをプルすることは意味がありませんか? LINQは、それがあってもことを私には思われるで抽象化、単純にすべての抽象化で同じ 1は、まったく同じ目的を達成するために書くでしょうアルゴリズム。カスタムアプローチの方が優れているかどうかを確認できるのはパフォーマンステストだけですが、LINQのようなものが要件を満たしていた場合、そもそも独自のクラスを作成する必要はありません。 ここでLINQに注目するつもりはありません。私は、JAVAの世界には匹敵するものがあると確信しています。なぜ、一部の人々が抽象化を使用するという考えに非常に不快になり、彼ら自身が書いていないのかを知りたいのです。 更新 Euphoricが指摘したように、Javaの世界にはLINQに匹敵するものはありません。 したがって、.NETスタックで開発している場合、常にそれを使用してみてはどうでしょうか。人々がそれが何をするのかを完全に理解していない可能性はありますか?

10
LINQおよびLambda Expressionsを使用すると、コードが読みにくくなりますか?[閉まっている]
私はLinqの同僚と議論しています。ここにコピーします: 同僚:ここで正直に話しましょう。Linq構文はダメです。わかりにくく直感的ではありません。 私:ああ、T-SQLよりも混乱しますか? 同僚:ええ、はい。 私:それは同じ基本的なパーツ、select、where、fromを持っています 同僚:私にとって、Linqはリレーショナル+ OOのろくでなしです。同僚:誤解しないでください。信じられないほど強力ですが、SQLを再利用してオブジェクトコレクションを使用しました。 私は、Linq + Lamdaを使用することは非常に強力であり(彼は同意します)、またコードを読みやすくします(彼はその点で同意しません)と思います。 pickFiles = from f in pickFolder.GetFiles("*.txt") where ValidAuditFileName.IsMatch(f.Name) select f; または var existing = from s in ActiveRecordLinq.AsQueryable<ScannedEntity>() where s.FileName == f.FullName && s.DocumentType != "Unknown" select s; または(VBコードはこちら) Dim notVerified = From image In images.AsParallel Group Join verifyFile In …

13
Any()がnull参照例外をスローしないことを期待するのは理不尽ですか?
拡張メソッドを作成する場合、もちろん、それを呼び出すことができnullます。ただし、インスタンスメソッドの呼び出しとは異なり、nullで呼び出す場合、aをスローする必要はありませんNullReferenceException->手動でチェックしてスローする必要があります。 Linq拡張メソッドの実装について、Any()MicrosoftはArgumentNullException(https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/AnyAll.cs)をスローすることを決定しました。 書かなければならないのはイライラする if( myCollection != null && myCollection.Any() ) このコードのクライアントとして、例えば((int[])null).Any()戻るべきだと期待するのは間違っていますfalseか?

9
LINQスタイルの設定[終了]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 私は毎日のプログラミングでLINQを使用するようになりました。実際、明示的なループを使用することはほとんどありません。しかし、構文のようなSQLはもう使用しないことがわかりました。拡張機能を使用するだけです。ではなく、言って: from x in y select datatransform where filter 私が使う: x.Where(c => filter).Select(c => datatransform) どのスタイルのLINQを好みますか?また、チームの他のどのスタイルに満足していますか?
21 c#  coding-style  linq 

6
結果をキャッシュしない方法でLINQを実装することにより、どのような利点が得られましたか?
これは、LINQを使用して足を濡らしている人々にとって既知の落とし穴です。 public class Program { public static void Main() { IEnumerable<Record> originalCollection = GenerateRecords(new[] {"Jesse"}); var newCollection = new List<Record>(originalCollection); Console.WriteLine(ContainTheSameSingleObject(originalCollection, newCollection)); } private static IEnumerable<Record> GenerateRecords(string[] listOfNames) { return listOfNames.Select(x => new Record(Guid.NewGuid(), x)); } private static bool ContainTheSameSingleObject(IEnumerable<Record> originalCollection, List<Record> newCollection) { return originalCollection.Count() == 1 && newCollection.Count() …

1
単体テスト:Linqによるアサーションの遅延
このような遅延アサーションを追加しても大丈夫ですか var actualKittens = actualKittens.Select(kitten => { Assert.IsСute(kitten); return kitten }); どうして?そのため、たとえば実体化されたコレクションを期待するステートメントでも、一度だけ反復できます。 CollectionAssert.AreEquivalent(expectedKittens, actualKittens.ToList()); また、Selectだけでなく、イテレータが定義され、多くのチェックとロジック(たとえば、いくつかのカウントとフィルタリング)を持つメソッドでもあります。 疑いの種は、テストが失敗した場合にそのようなコードを読み取り、デバッグする複雑さです。

3
.NETs Select(Map)およびAggregate(Reduce)の命名の背後にある理由は何ですか?
他のプログラミング言語では、MapとReduceを見てきましたが、それらは関数型プログラミングの基礎です。LINQがAggregate(と同じReduce)およびSelect(と同じ)を持つ理由や歴史を見つけることができませんでしたMapか? 私が尋ねているのは、それが同じことだと理解するのに時間がかかったからです。そして、私はこの理由を知りたいのです。

7
Linqに相当する最高のJavaは何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 Linqの機能を提供することに近いJavaのライブラリはありますか?
17 java  linq 

5
MVC、WCF、EF、LINQ-それは私だけですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 8年前に閉鎖されました。 ...または、より複雑になっていますか? 最近、MS Webアプリを「適切に」開発するには、多くのことを知る必要があるように思えます。よくわからない悪い昔、データベーステーブル、ASP.NET、ADO.NETがあり、比較的単純な概念を使用してWebアプリを構築しました。 最近では、「正しい」ことを「手助け」するためのフレームワークがたくさんあるように見えますが、これがすべてをより簡単に、より良くすることを確信していません。私はこの感情でかなり小さな少数派になるだろうと感じていますが、物事が少し狂っていると思う他の誰かがそこにいますか?

8
LINQシニアインタビューの質問[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 シニアプログラマー向けのインタビューの質問のLINQセクションを準備しています。LINQで最も興味深い質問は何ですか?なぜ?
16 c#  .net  interview  linq 

5
XSLTおよび可能な代替案[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 1つのXMLファイルを別のXMLファイル(HTMLなど)に変換するためのXSLTを見てきました。XSLT(標準化されて使用されているツールである)には利点があることがわかりましたが、いくつかの理由で消極的です XSLTプロセッサは非常に巨大であると思われる/リソースを大量に消費する XMLはプログラミングにとって悪い表記法であり、それがXSLTのすべてです。 ここでXSLTをトロールしたくないのですが、私はそれについて嫌いなものを指摘したいだけで、私は代替手段に期待することのアイデアをあなたに提供します。 Lispのバックグラウンドがあるので、Lispに基づいたツリー構造変換のより良い方法があるかどうか疑問に思います。DSSSLへの参照を見てきましたが、残念ながらDSSSLに関するほとんどのリンクは死んでいるので、それを説明するコードを見るのはすでに困難です。DSSSLはまだ使用中ですか?docbookをチェックアウトするときに一度openjadeをインストールしたことを覚えています。 Jeff Atwoodのブログ投稿は、XSLTの代わりにRubyを使用することを示唆しているようです。 非XMLプログラミング言語でXSLTに似たXML変換を行うための適切な方法はありますか?私は上の入力のために開いているだろう XML変換を容易にするスクリプト言語に役立つライブラリ 特に(ただし排他的ではない)Lispのような変換言語、またはRubyなど。 これまでに見つけたいくつかのこと: Webのいくつかの場所で、Linqが代替案として挙げられています。非常に一般的には、あらゆる種類の分類であり、XSLTの経験が最も豊富な人のものです。 スキームhttp://cs.brown.edu/~sk/Publications/Papers/Published/kk-sxslt/およびhttp://www.okmij.org/ftp/Scheme/xml.html
14 xml  lisp  linq  xslt 

4
linqは表面に表示されるよりも効率的ですか?
このようなものを書くと: var things = mythings .Where(x => x.IsSomeValue) .Where(y => y.IsSomeOtherValue) これは次と同じですか: var results1 = new List<Thing>(); foreach(var t in mythings) if(t.IsSomeValue) results1.Add(t); var results2 = new List<Thing>(); foreach(var t in results1) if(t.IsSomeOtherValue) results2.Add(t); または、以下のように機能するいくつかの魔法があります: var results = new List<Thing>(); foreach(var t in mythings) if(t.IsSomeValue && t.IsSomeOtherValue) results.Add(t); それともまったく異なるものですか?
13 c#  linq 

1
なぜ関数型プログラミングより命令型プログラミングが好ましいのですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 背景:私は、一般的なメンタルモデルが不可欠なプログラミングであるVB.NETショップで働く関数型プログラミングを提唱しています。システムの基盤はWinFormsであるため、命令型プログラミングから完全に逃れることはできないと理解できますが、そのメリットを信じているため、可能な限りFP(主にLinq経由)を使用しようとしています。 FPに対する議論と反論 流fluentなLinqは、このスタイルがシーケンスを別のシーケンスまで処理し、それを繰り返すという点で、命令型の対応するものよりも効率が低いことに気付くかもしれません。一般に、シーケンス上の繰り返しパスを避けるために最適化できる命令型アプローチよりも数パス多くかかります。このため、リードは、明らかに「効率が悪い」機能的アプローチを選択する理由を理解できませんでした。 反論:CPUサイクルの観点からは効率が悪い場合がありますが、各行はシーケンスを通過するときに1つのことだけを行うため、人間が理解しやすく、追跡しやすいと感じました。私にとって、これは、自分のステーションの各人がやるべき仕事が1つしかない組立ラインがあるような気がします。効率の無視できるトレードオフは、懸念がきちんと分離されたコードによって補償されると感じています。 私の店で聞くFPに対する次の議論は、デバッグするのが難しいということです-それは本当です。Linqコードをステップオーバーするのは簡単ではありません。そして、すぐに見つけられない問題をよりよく追跡して分析するために、メソッドチェーンを解く必要がある場合があります。 _Counter-argument:ほとんどの場合、機能スタイルは読み方がより宣言的であり、エラーが機能チェーン内でスローされると、私は通常、問題をすぐに見つけることができるため、これには問題はありません。 私の質問 私は店で機能的なスタイルを宣伝しようとしてきましたが、私は前進しているとは感じません。私は両方のスタイルのプログラミングを行ってきましたが、最近Haskellに手を出したばかりです。長年の命令的な経験にもかかわらず、私はJavaScriptでFPを日常的に使用しているので、それは私に成長しました。命令型のスタイルにこだわった場合に行ったことと比較すると、コアの正当性のメモが鳴ります。私は脳を機能的思考、機能的構成に向けて再訓練しました。 私が理解できないのは、FPのメリットを他の人に納得させるのがどれほど難しいかです。 たとえば、私のショップの開発者はLinqを使用していますが、通常はドメインデータを処理するコンテキストで使用しています。私はより一般的な意味でそれを使用し、シーケンス/リストまたは永続的なデータ構造を扱うときはいつでもそれを好みます。チームメイトにLinqの使用を拡大するよう説得することができませんでした。 私が理解しようとしているのは、開発者がFPを好まない原因です。 FPの経験が豊富であるが、命令型を支持することに決めた人からの回答を期待したい。機能を使用するのではなく、命令にとどまるという決定を下した理由は何ですか? 命令型プログラミングと関数型プログラミングの違いを強調する追加の例を次に示します。 SelectedRowsLinqでグリッドのメソッドを次のように書きました。 Public Property SelectedRows() As DataRow() Implements IDataSourceControl.SelectedRows Get Return Me.ugrBase.Selected.Rows. OfType(Of Infragistics.Win.UltraWinGrid.UltraGridRow)(). Select(Function(ugr) ugr.ListObject). OfType(Of DataRowView)(). Select(Function(drv) drv.Row). ToArray End Get ただし、このスタイルのコードは一部の開発者を不快にさせるため、当社のリードはそれをより馴染みのあるものに書き換えました。 Public Property SelectedRows() As DataRow() Implements IDataSourceControl.SelectedRows Get Dim plstRows As …

3
LINQはどのような問題領域のために作られていますか?
C#のStack Overflowに投稿された質問を見るたびに、LINQの問題を解決する少なくとも1つまたは2つの回答が投稿されます。通常、非常に高い評価を得ている人々は、プロのようにLINQを使用しているようです。 だから私の質問は、どの問題ドメインがLINQを使用することになっていますか? サイドノートにも:それを避けるべき目的はありますか?データセットのサイズはLINQクエリのパフォーマンスに影響しますか?

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