繁体   English   中英

如何从HashSet List中删除“\\ t”?

[英]How can i remove “\t” from HashSet List?

private void ReadKeysValues()
        {
            if (File.Exists(@"c:\Temp\WritePostedAlready.txt"))
            {
                alreadyPost.UnionWith(File.ReadAllLines(@"c:\Temp\WritePostedAlready.txt"));
                for (int i = 0; i < alreadyPost.Count; i++)
                {
                    alreadyPost.Remove("");
                    alreadyPost.Remove("\t");
                }
            }
        }

变量alreadyPost是HashSet我可以从中删除空行/ s做Remove(“”); 但我无法删除以\\ t开头的行/索引\\ s。 执行删除(“\\ t”); 或(@“\\ t”); 不管用。

您可以使用RemoveWhere方法。

alreadyPost.RemoveWhere(p => p.StartsWith("\\t"));

更新:

要仅删除每个项目中的\\t字符,但保留项目(请参阅注释),您可以执行以下操作:

alreadyPost = new HashSet(
    alreadyPost.Select(p => p.StartsWith("\t") ? p.Substring(1) : p)
);

我通常会阻止将这些项目添加到集合中,而不是之后将其删除。 但是,如果您真的想要,可以使用以下代码:

foreach (var item in alreadyPost.ToList())
{
    if (item.StartsWith("\t"))
    {
        alreadyPost.Remove(item);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM