1. ホーム
  2. c#

[解決済み] 条件に応じてリストから項目を削除する

2023-03-08 03:14:44

質問

このような構造体を持っています。

public struct stuff
{
    public int ID;
    public int quan;
}

で、その商品を削除したい場合は ID が1である商品を削除したい。

現在、これを試しています。

prods.Remove(new stuff{ prodID = 1});

となっていて、うまくいきません。

皆さんありがとうございました。

どのように解決するのですか?

linqを使用します。

prods.Remove( prods.Single( s => s.ID == 1 ) );

もしかしたら SingleOrDefault() を使って、その要素が存在するかどうかをチェックしたいかもしれません.

EDITです。

以来 stuff は構造体です。 SingleOrDefault() はnullを返しません。しかし、それは デフォルト( stuff ) を返し、IDが0になります。 通常 オブジェクトに0というIDがない場合、このIDを問い合わせることができます。

var stuffToRemove = prods.SingleOrDefault( s => s.ID == 1 );
if( stuffToRemove.ID != 0 )
{
    prods.Remove( stuffToRemove );
}