Tcl 如何只删除指定的列表项?

问题描述 投票:0回答:1

我需要一个解决方案来仅从列表中删除指定的文件而不删除其他文件。 现在我正在使用以下:

[lreplace $var end end]

其中 $var 是包含文件列表的目录示例:

File1
File2
File3

问题是如果我启动“[lreplace $var end end]”它会消除最后一个文件,但我只想消除“文件3” 我怎样才能修改它? 谢谢

tcl
1个回答
1
投票

您想要

lsearch
想要的列表项获取其索引

set mylist {File1 File3 File2}
set idx [lsearch -exact $mylist "File3"]
set newlist [lreplace $mylist $idx $idx]  ;# => {File1 File2}

如果该项目不在列表中,则

idx
将是
-1
,并且
lreplace
调用不会更改原始列表。

© www.soinside.com 2019 - 2024. All rights reserved.