どうも、ちょげ(@chogetarou)です。
リスト(List)の偶数の数値を削除する方法を紹介します。
方法

リスト(List)の偶数の数値を削除する方法は、3つあります。
RemoveAll()
1つ目は、RemoveAll()を使う方法です。
まず、リストからRemoveAll()を呼び出します。
RemoveAll()の引数に、条件式「引数 % 2 == 0」を返す関数を指定します。
//ls=対象のリスト
ls.RemoveAll(item => item % 2 == 0);
上記のRemoveAll()は、呼び出したリストから偶数の数値を削除します。
使用例
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
List<int> nums = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
nums.RemoveAll(item => item % 2 == 0);
foreach (int item in nums) {
Console.WriteLine(item);
}
}
}
出力:
1
3
5
7
9
forループ
2つ目は、forループを使う方法です。
まず、forでリストのインデックスをループします。
forのループ処理内で、「リストのループ変数のインデックスの要素を2で割った結果が0」を条件に分岐します。
分岐内で、リストからRemove()を呼び出し、Remove()の引数にリストのループ変数のインデックスの要素を指定します。
//ls=対象のリスト
for (int i = 0; i < ls.Count; i++) {
int item = ls[i];
if (item % 2 == 0) {
ls.Remove(item);
}
}
上記のforループは、Remove()を呼び出したリストから偶数の数値を削除します。
使用例
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
List<int> nums = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i < nums.Count; i++) {
int item = nums[i];
if (item % 2 == 0) {
nums.Remove(item);
}
}
foreach (int item in nums) {
Console.WriteLine(item);
}
}
}
出力:
1
3
5
7
9
Where()
3つ目は、Where()を使う方法です。
まず、System.Linqを導入します。
using System.Linq;
次に、リストからWhere()を呼び出します。
Where()の引数に、条件式「引数 % 2 != 0」を返す関数を指定します。
そして、Where()からToList()を呼び出します。
//ls=対象のリスト
List<int> result = ls.Where(item => item % 2 != 0).ToList();
上記のWhere()とToList()は、呼び出したリストから偶数の数値を削除した結果を取得します。
使用例
using System;
using System.Collections.Generic;
using System.Linq;
public class Example
{
public static void Main()
{
List<int> nums = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int> result = nums.Where(item => item % 2 != 0).ToList();
foreach (int item in result) {
Console.WriteLine(item);
}
}
}
出力:
1
3
5
7
9
まとめ
リスト(List)の偶数の数値を削除する方法は、次の3つです。
- RemoveAll()を使う方法
ls.RemoveAll(item => item % 2 == 0);
- forループを使う方法
- Where()を使う方法
List<int> result = ls.Where(item => item % 2 != 0).ToList();
コメント