[解決済み] LINQを使用してList<T>から要素を削除する
2022-02-11 17:05:06
質問
例えば、次のようなLINQクエリを持っているとします。
var authors = from x in authorsList
where x.firstname == "Bob"
select x;
ということを考えると
authorsList
は型
List<Author>
を削除するにはどうすればよいのでしょうか?
Author
要素から
authorsList
を、クエリによって返された
authors
?
別の言い方をすれば、Bobと等しいファーストネームをすべて
authorsList
?
注:これは質問の目的のために簡略化した例です。
どのように解決するのですか?
まあ、そもそも除外してしまえば簡単なんですけどね。
authorsList = authorsList.Where(x => x.FirstName != "Bob").ToList();
しかし、これでは
authorsList
前のコレクションから著者を削除するのではなく、前のコレクションから著者を削除します。別の方法として
RemoveAll
:
authorsList.RemoveAll(x => x.FirstName == "Bob");
どうしても他のコレクションをベースにする必要がある場合は、HashSet、RemoveAll、Containsを使いますね。
var setToRemove = new HashSet<Author>(authors);
authorsList.RemoveAll(x => setToRemove.Contains(x));
関連
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] リストの要素数を取得する方法
-
[解決済み] リストからランダムに項目を選択するにはどうすればよいですか?
-
[解決済み] インデックスを指定してリストから要素を削除する方法
-
[解決済み] LINQで複数の "order by "を使用する
-
[解決済み] なぜList<T>を継承しないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み] ...基礎となる接続は閉じられました。予期しないエラーが受信で発生しました
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み】URLから画像をダウンロードする方法