- 1. 概要
- 2. 全件削除
- 3. 条件削除
- 4. 範囲削除
- 5. 参考サイト
1. 概要
「List」から要素を削除するメソッドです。
2. 全件削除
public void Clear();
で、全件削除します。
初期化と同じですな。
3. 条件削除
ある条件のものを「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]
4. 範囲削除
「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]
5. 参考サイト
本ページは、下記のサイトを参考にさせていただきました。
「List.Clear メソッド (System.Collections.Generic) 」
「List.RemoveRange(Int32, Int32) メソッド (System.Collections.Generic) 」
|
|