1. 概要
「List」から要素を削除するメソッドです。
「List.RemoveRange(Int32, Int32) メソッド (System.Collections.Generic) 」
2. 条件削除
ある条件のものを「List」から削除する際は。
public int RemoveAll (Predicate<T> match);
というメソッドが使えます。
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Xml.Serialization;
using System.Collections.Generic;
[Serializable]
public class ObjectCopy
{
・・・ 略 ・・・
}
[Serializable]
public class myClass : ObjectCopy
{
public int age = 0;
public string name = String.Empty;
public myClass DeepCopy()
{
return (myClass)this.Clone();
}
}
public class HelloWorld
{
static public void Main ()
{
List<myClass> list01 = new List<myClass>
{
new myClass { age = 20, name = @"hogehoge" },
new myClass { age = 20, name = @"fugafuga" },
new myClass { age = 21, name = @"piyopiyo" },
};
foreach (myClass m in list01)
{
Console.WriteLine(@"age = [" + m.age + @"] name[" + m.name + @"]");
}
Console.WriteLine("");
list01.RemoveAll(x => x.age == 20);
foreach (myClass m in list01)
{
Console.WriteLine(@"age = [" + m.age + @"] name[" + m.name + @"]");
}
}
}
というソースを書いて、実行すると、下記の結果が得られます。
age = [20] name[hogehoge]
age = [20] name[fugafuga]
age = [21] name[piyopiyo]
age = [21] name[piyopiyo]
3. 範囲削除
「RemoveRange」というメソッドで、ある範囲の要素を削除することができます。
using System;
using System.Collections.Generic;
using System.IO;
public class MyMain
{
static public void Main ()
{
List<int> intList = new List<int>{ 123, 456, 789, };
intList.ForEach(x => Console.WriteLine(" ["+ x +"]"));
intList.RemoveRange(1, 1);
Console.WriteLine("");
Console.WriteLine("削除後");
intList.ForEach(x => Console.WriteLine(" ["+ x +"]"));
}
}
というソースを書いて、ビルド後に実行すると、下記の結果が得られます。
[123]
[456]
[789]
削除後
[123]
[789]