ZetCode

C# List Remove

上次修改时间:2024 年 1 月 19 日

在本文中,我们将展示如何在 C# 中删除列表元素。

C# 列表是相同类型元素的集合。 可以通过索引访问这些元素。

我们可以使用 RemoveRemoveAllRemoveAtRemoveRangeClear 方法删除列表元素。

C# List Remove

Remove 方法从列表中删除特定对象的第一个匹配项。

public bool Remove (T item)

如果成功删除项目,则返回 true;否则,返回 false。

Program.cs
List<string> words = [ "sky", "cup", "new", "war", "wrong",
    "crypto", "forest", "water", "cup" ];

string word = "sky";

removeWord(word);
removeWord(word);

Console.WriteLine(string.Join(' ', words));

void removeWord(string word) 
{
    if (words.Remove(word))
    {
        Console.WriteLine($"{word} removed");
    } else 
    {
        Console.WriteLine($"failed to remove {word}");
    }
}

在程序中,我们定义一个字符串列表。我们使用 Remove 方法删除一个单词。

$ dotnet run
sky removed
failed to remove sky
cup new war wrong crypto forest water cup

C# List RemoveAt

RemoveAt 方法删除列表中指定索引处的元素。

public void RemoveAt (int index)

这是语法。

Program.cs
List<string> words = [ "sky", "cup", "new", "war", "wrong",
    "crypto", "forest", "water", "cup" ];

Console.WriteLine(string.Join(' ', words));

words.RemoveAt(0);
words.RemoveAt(5);

Console.WriteLine(string.Join(' ', words));

在程序中,我们使用 RemoveAt 删除两个元素。

words.RemoveAt(0);
words.RemoveAt(5);

第一个和第六个元素被删除。

$ dotnet run
sky cup new war wrong crypto forest water cup
cup new war wrong crypto water cup

C# List RemoveAll

RemoveAll 方法删除所有符合指定谓词定义的条件的元素。

public int RemoveAll (Predicate<T> match);

它返回从列表中删除的元素数量。

Program.cs
List<string> words = [ "sky", "cup", "new", "war", "wrong",
    "crypto", "forest", "water", "cup" ];

Console.WriteLine(string.Join(' ', words));

int n = words.RemoveAll(e => e.StartsWith('w'));

Console.WriteLine($"{n} elements removed");
Console.WriteLine(string.Join(' ', words));

我们删除所有以 'w' 开头的单词。然后我们打印删除的单词数量。

int n = words.RemoveAll(e => e.StartsWith('w'));

我们以 lambda 表达式的形式将谓词传递给 RemoveAll 方法。

$ dotnet run
sky cup new war wrong crypto forest water cup
3 elements removed
sky cup new crypto forest cup

C# List RemoveRange

RemoveRange 方法从列表中删除一系列元素。

public void RemoveRange(int index, int count)

参数是要删除的元素范围的起始索引以及要删除的元素数量。

Program.cs
List<string> words = [ "sky", "cup", "new", "war", "wrong",
    "crypto", "forest", "water", "cup" ];

Console.WriteLine(string.Join(' ', words));

words.RemoveRange(0, 4);

Console.WriteLine(string.Join(' ', words));

在该示例中,我们从头开始删除四个元素。

$ dotnet run
sky cup new war wrong crypto forest water cup
wrong crypto forest water cup

C# List Clear

Clear 方法从列表中删除所有元素。

Program.cs
List<string> words = [ "sky", "cup", "new", "war", "wrong",
    "crypto", "forest", "water", "cup" ];

Console.WriteLine(words.Count);

words.Clear();

Console.WriteLine(words.Count);

程序使用 Clear 删除所有单词。我们使用 Count 检查元素的数量。

$ dotnet run
9
0

来源

List 类 - 语言参考

在本文中,我们展示了如何在 C# 中删除列表元素。

作者

我叫 Jan Bodnar,是一名充满热情的程序员,拥有丰富的编程经验。 我自 2007 年以来一直撰写编程文章。 迄今为止,我已经撰写了超过 1,400 篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出所有 C# 教程