删除列表中最后出现的字符串
本文关键字:字符串 最后 删除列 列表 删除 | 更新日期: 2023-09-27 18:08:46
是否可以使用Linq从列表中删除字符串的最后一次出现?像这样:
var arr = "hello mom hello dad".Split(' ').ToList(); //hello mom hello dad
arr.RemoveLast(x => x.Contains("hello")); //hello mom dad
基本上是删除列表的最后一个出现项。我需要使用包含的字符串,它必须是一个列表。
list.RemoveAt(list.FindLastIndex(x => x.Contains("hello")));
上面的代码将删除最后一个包含"hello"的字符串。如果可能没有一个字符串项满足搜索条件,那么在这种情况下代码应该什么都不做,然后像这样:
int index = list.FindLastIndex(x => x.Contains("hello"));
if (index != -1)
list.RemoveAt(index);
下面的代码将让您确定最后一个包含"hello"的项的索引,如果存在,则将其删除。它使用c# 6语法。
var arr = "hello mom hello dad".Split(' ').ToList();
var removeIndex = arr.Select((s,i) => new { Value = s, Index = i })
.LastOrDefault(x => x.Value.Contains("hello"))
?.Index;
if(removeIndex.HasValue)
arr.RemoveAt(removeIndex.Value);
如何使用列表:
var arr = "hello mom hello dad".Split(' ').ToList();
arr.RemoveAt(arr.LastIndexOf("hello"));