C# 使用LinQ C从列表集合中删除1项#
我有下一个清单:C# 使用LinQ C从列表集合中删除1项#,c#,winforms,linq,visual-studio,C#,Winforms,Linq,Visual Studio,我有下一个清单: 1 5 2 1 2 9 1 在这种情况下,我将数字1重复三次。 我需要使用LinQ创建一个表达式,其中只指定了一次要删除的数字: 例如: RemoveItem(1), Result: 1 5 2 1 2 9 包含linq的函数仅删除1项而不是全部 我听说过.RemoveAll,但我删除了所有重复项,只需删除一个。您可以先搜索符合条件的项,然后像以下那样删除它: List<int> yourList = new Li
1
5
2
1
2
9
1
在这种情况下,我将数字1重复三次。
我需要使用LinQ创建一个表达式,其中只指定了一次要删除的数字:
例如:
RemoveItem(1), Result:
1
5
2
1
2
9
包含linq的函数仅删除1项而不是全部
我听说过.RemoveAll,但我删除了所有重复项,只需删除一个。您可以先搜索符合条件的
项,然后像以下那样删除它:
List<int> yourList = new List<int> { 1, 5, 2, 1, 2, 9, 1 };
yourList.Remove(yourList.FirstOrDefault(r=> r == 1));
因为将删除指定对象的第一个引用
(如果您正在处理引用类型(类对象)列表,则使用FirstOrDefault
将非常有用)
这将删除找到的第一个符合条件的项目,因此在第一次删除后,您的列表中将保留5,2,1,2,9,1
如果要从列表末尾删除该项,请使用RemoveAt
类似于:
yourList.RemoveAt(yourList.LastIndexOf(1));
您如何知道要删除哪个1
?无论删除什么。使用RemoveAt
如何?非常感谢您的帮助,您的答案解决了我的问题。
yourList.RemoveAt(yourList.LastIndexOf(1));