Jon*_*rdo -4 c# linq visual-studio winforms
我有下一个清单:
1
5
2
1
2
9
1
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我重复了3次.我需要使用LinQ创建一个表达式,其中您要删除的数字仅指定一次:
例:
RemoveItem(1), Result:
1
5
2
1
2
9
Run Code Online (Sandbox Code Playgroud)
包含linq的函数只删除1项而不是全部.
我听说过.RemoveAll,但我删除了所有副本,我只需要删除一个.
您可以搜索First符合条件的商品并将其删除,如:
List<int> yourList = new List<int> { 1, 5, 2, 1, 2, 9, 1 };
yourList.Remove(yourList.FirstOrDefault(r=> r == 1));
Run Code Online (Sandbox Code Playgroud)
或者干脆:
yourList.Remove(1);
Run Code Online (Sandbox Code Playgroud)
因为List<T>.Remove将删除第一次出现的指定对象.
(FirstOrDefault如果您正在处理引用类型列表(类对象),则使用将很有用)
这将删除匹配条件的第一个项目,因此在首次删除后,您将5, 2, 1, 2, 9, 1在列表中保留.
如果要从列表末尾删除该项,请使用RemoveAt如下:
yourList.RemoveAt(yourList.LastIndexOf(1));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
215 次 |
| 最近记录: |