問題は2つの異なるタイプを含むリストから特定のアイテムを削除したいということです。私が試したものは何でも私はエラーが発生し、私は型を使用することができます、私は古いクラスを削除しませんそのクラスの新しいインスタンスを作成します。私は本当にここにこだわっている、私は何をすべきかについて私は考えていない。複数のタイプを含むリストから特殊タイプを削除するC#
private List<Toys> toys = new List<Toys>();
toys.Add(new Ball("red"));
toys.Add(new MouseToy("gray"));
public abstract class Toys {}
public class Ball : Toys {}
public class MouseToy : Toys {}
//how do i remove only one of the types?
//beacuse this does not work witch is one of many things i tried
foreach(var toy in toys){
if (toy.GetType == Ball){
toys.Remove(toy)
}
}
これは、リストに使用するコードとほぼ同じです。
toys = toys.Where(toy=>!(toy is Ball)).ToList();
としては、(感謝)コメントで@Sefeを述べた:あなたは使用することができ、あなたのことを、それはあなたのために大丈夫だ場合
List<MouseToy> mouseToys = toys.OfType<MouseToy>().ToList();
とそれも簡単で、もっと良いあなただけんでした
それは簡単ですか?私は私が本当にそれがtho何を理解しているとは思わないことを意味します。どのような価値 "typ" "物"はおもちゃを得るのですか? –
ああ、私は理解していると思う、私はリストからボールのオブジェクトを削除し、残りの部分だけを再度リストにします。 –
@JohannesBjärehallはい、ボールではないオブジェクトだけが新しいリストを作成します。 –