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

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

4
リストから空の文字列を削除してから、リストから重複する値を削除する方法
テーブルからのいくつかの列値のリストがあるとしましょう。空の文字列と重複する値を削除するにはどうすればよいですか。次のコードを参照してください。 List<string> dtList = dtReportsList.AsEnumerable().Select(dr => dr.Field<string>("column1")).ToList(); これは私が今コーディングしたものですが、Amiramのコードははるかにエレガントなので、ここでその答えを選択します。 DataTable dtReportsList = someclass.GetReportsList(); if (dtReportsList.Rows.Count > 0) { List<string> dtList = dtReportsList.AsEnumerable().Select(dr => dr.Field<string>("column1")).ToList(); dtList.RemoveAll(x=>x == ""); dtList = dtList.Distinct().ToList(); rcboModule.DataSource = dtList; rcboModule.DataBind(); rcboModule.Items.Insert(0, new RadComboBoxItem("All", "All")); }
82 c#  linq 


4
Linq-SelectManyの混乱
SelectManyのドキュメントから私が理解していることから、これを使用して1対多の関係の(フラット化された)シーケンスを生成できます。 以下のクラスがあります public class Customer { public int Id { get; set; } public string Name { get; set; } } class Order { public int Id { get; set; } public int CustomerId { get; set; } public string Description { get; set; } } 次に、次のようなクエリ式の構文を使用してそれらを使用しようとします。 var customers = …

4
Linq-to-SQL ToDictionary()
Linqを使用してSQL(2008)から2つの列を(キャッシュ用の)辞書に適切に変換するにはどうすればよいですか? 現在、IQueryable b / cをループしていますが、ToDictionaryメソッドを機能させることができません。何か案は?これは機能します: var query = from p in db.Table select p; Dictionary<string, string> dic = new Dictionary<string, string>(); foreach (var p in query) { dic.Add(sub.Key, sub.Value); } 私が本当にやりたいのは、このようなものですが、機能していないようです。 var dic = (from p in db.Table select new {p.Key, p.Value }) .ToDictionary<string, string>(p => p.Key); しかし、このエラーが発生します:「System.Linq.IQueryable」から「System.Collections.Generic.IEnumerable」に変換できません
81 c#  linq  linq-to-sql 

11
LINQを使用して、アイテムをリストの一番上に移動します
LINQを使用して、たとえばid = 10のアイテムをリストの最初のアイテムとして移動する方法はありますか? アイテムA-id = 5 アイテムB-id = 10 アイテムC-id = 12 アイテムD-id = 1 この場合、どうすればアイテムCをList<T>コレクションの一番上にエレガントに移動できますか? これは私が今持っている最高のものです: var allCountries = repository.GetCountries(); var topitem = allCountries.Single(x => x.id == 592); var finalList = new List<Country>(); finalList.Add(topitem); finalList = finalList.Concat(allCountries.Where(x=> x.id != 592)).ToList();
81 c#  linq  sorting 

4
Any <T>の反対の方法は何ですか
コレクションにオブジェクトが含まれていないかどうかをLinqで確認するにはどうすればよいですか。IEの反対Any&lt;T&gt;。 結果を反転することはできます!が、読みやすくするために、これを行うためのより良い方法があるかどうか疑問に思いました。自分で拡張子を追加する必要がありますか?
80 c#  linq 

17
文字列コレクションを検索する最速の方法
問題: 約120,000ユーザー(文字列)のテキストファイルがあり、コレクションに保存して、後でそのコレクションを検索します。 検索方法は、ユーザーがaのテキストを変更するたびに発生TextBoxし、結果はのテキストを含む文字列になりますTextBox。 リストを変更する必要はありませんListBox。結果をプルして、に配置するだけです。 私がこれまでに試したこと: 2つの異なるコレクション/コンテナを試してみました。これらは外部テキストファイルから文字列エントリをダンプしています(もちろん1回)。 List&lt;string&gt; allUsers; HashSet&lt;string&gt; allUsers; 次のLINQクエリを使用します。 allUsers.Where(item =&gt; item.Contains(textBox_search.Text)).ToList(); 私の検索イベント(ユーザーが検索テキストを変更すると発生します): private void textBox_search_TextChanged(object sender, EventArgs e) { if (textBox_search.Text.Length &gt; 2) { listBox_choices.DataSource = allUsers.Where(item =&gt; item.Contains(textBox_search.Text)).ToList(); } else { listBox_choices.DataSource = null; } } 結果: どちらも応答時間が遅くなりました(各キーを押す間隔は約1〜3秒)。 質問: 私のボトルネックはどこにあると思いますか?私が使ったコレクションは?検索方法は?どちらも? どうすればより良いパフォーマンスとより流暢な機能を得ることができますか?

7
LINQの標準偏差
LINQは集約SQL関数STDDEV() (標準偏差)をモデル化しますか? そうでない場合、それを計算するための最も簡単な/ベストプラクティスの方法は何ですか? 例: SELECT test_id, AVERAGE(result) avg, STDDEV(result) std FROM tests GROUP BY test_id

1
IAsyncEnumerableをリストに変換
したがって、C#8ではIAsyncEnumerableインターフェイスが追加されました。 普通のものがあれば、それから欲しい他のコレクションをIEnumerable作ることができListます。そこでLinqに感謝します。 var range = Enumerable.Range(0, 100); var list = range.ToList(); さて、私は自分IAsyncEnumerableをaに、Listそしてもちろんこれを非同期に変換したいと思います。その場合のLinq実装はすでにありますか?ない場合、どうすれば自分で変換できますか?

2
.NET Core 3.0 Entity Frameworkでグループ参加を実行するにはどうすればよいですか?
.NET Core 3.0の変更により、 ... NavigationExpandingExpressionVisitor 'が失敗しました。これは、EF Coreのバグまたは制限を示している可能性があります。詳細については、https://go.microsoft.com/fwlink/?linkid = 2101433を参照して ください。)---&gt; System.InvalidOperationException:LINQ式 'GroupJoin、...の処理 これは非常に単純なクエリなので、.NET CORE 3.0で実行する方法が必要です。 var queryResults1 = await patients .GroupJoin( _context.Studies, p =&gt; p.Id, s =&gt; s.Patient.Id, (p, studies) =&gt; new { p.DateOfBirth, p.Id, p.Name, p.Sex, Studies =studies.Select(s1=&gt;s1) } ) .AsNoTracking().ToListAsync(); 私は基本的に、Studyを患者に結合するLinqクエリ(または上記のメソッド構文)を探しており、Studyを空のリストに設定するか、特定の患者のスタディがない場合はnullを設定します。 何か案は?これは.NET Core 2.2で機能していました。また、上記のMSFTリンクは、重要な変更がクライアント側の評価に関連しており、生成されたクエリがテーブル全体を読み取ることを回避していることを示しています。ただし、この単純なクエリでは、結合はサーバー側で簡単に実行できるはずです。

1
ToLookupの前に追加のToArrayを配置すると、なぜ高速になるのですか?
.csvファイルを解析してルックアップする短いメソッドがあります。 ILookup&lt;string, DgvItems&gt; ParseCsv( string fileName ) { var file = File.ReadAllLines( fileName ); return file.Skip( 1 ).Select( line =&gt; new DgvItems( line ) ).ToLookup( item =&gt; item.StocksID ); } そして、DgvItemsの定義: public class DgvItems { public string DealDate { get; } public string StocksID { get; } public string StockName …
10 c#  linq 

1
FirstOrDefaultから公開されていないnull可能な参照型情報
C#8.0 の新しいnull許容参照型機能をテストしたかったのです。 .NET Core 3.0を対象とする新しいプロジェクトを開始し、.csprojファイルでnull許容の参照型を有効にして、コーディングを開始しました。私はaを取り、その配列に等しいstring[]を返す単純なリストを作成しました。ここで、配列に実際に存在するかどうかは定かでないので、を使用します。これは、一致が見つからない場合にデフォルトになるはずです。stringabcabcFirstOrDefault()null using System; using System.Linq; public string FindArgument(string[] args) { var arg = args.FirstOrDefault(x =&gt; x == "abc"); return arg; } 私のメソッドはを返しますstring。これはnullにできないタイプになっているはずです。nullFirstOrDefault()が返される可能性があるのでnull、上記のメソッドはnull の可能性があるarg変数を返すときに警告を生成することを期待します。ありません。 FirstOrDefault()Visual Studioでのシグネチャを見ると、その理由は明らかです。メソッドが返すのはstring、string?私が期待するnullに対応する同等のものではありません。 以下のメソッド本体を使用すると、期待した警告が表示されます。 var arg = args.Contains("abc") ? "abc" : null; return arg; (この例のSystem.Linq)システムライブラリは、.NET Core 3.0を対象とする場合、null可能性情報を実際に公開しませんか?

3
linqを使用してメソッドをx回呼び出す
1つのメソッドを3回呼び出したいLINQを使用して、メソッドがオブジェクトを返し、そのオブジェクトをリストに追加したいのですが、どうすればよいですか? List&lt;News&gt; lstNews = new List&lt;News&gt;(); lstNews.Add(CollectNews) [x 3 times] &lt;-- Using Linq private static News CollectNews(){ ... }
8 c#  linq 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.