如何使用 LINQ 删除 List C# 中第一次出现的元素?

Den*_*rez 5 c# linq list

我有以下清单

List<string> listString = new List<string>() { "UserId", "VesselId", "AccountId", "VesselId" };
Run Code Online (Sandbox Code Playgroud)

我想使用一个 Linq 运算符,它只删除第一次出现的 VesselId。

Eya*_*rry 5

您无法使用 LINQ 更改原始集合,因此最接近的将是:

var index = listString.IndexOf("VesselId");
if(index>-1)
   listString.RemoveAt(index);
Run Code Online (Sandbox Code Playgroud)

编辑 1:

根据 Igor Mesaros 的研究,我最终实现了List.Remove方法中的逻辑,因此更简单的解决方案是:

listString.Remove("VesselId");
Run Code Online (Sandbox Code Playgroud)


Gil*_*een 1

如果您想要做的是获得一个不同的列表,那么您有一个该 listString.Distinct() 的扩展方法