c# - 如何从 HashSet 列表中删除 "\t"?

标签 c# winforms

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 我可以通过执行Remove("");来删除空行。 但我无法删除开头以\t 开头的行/索引。 删除("\t");或 (@"\t");不工作。

最佳答案

您可以使用RemoveWhere方法。

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

更新:

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

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

关于c# - 如何从 HashSet 列表中删除 "\t"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21956747/

相关文章:

c# - 在同一解决方案的另一个项目中重复使用 SpecFlow 步骤

c# - 在 javascript 中查找控件

c# - 使用 C# 在 Azure 存储中创建容器

c# - 将数据库附加到exe的可能方法

c# - 带有文本按钮的 WinForms 消息框

c# - 方法参数的数量可变,每个参数的类型不同

c# - 用户身份验证后自动重定向不起作用

c# - 为什么 MouseEnter 和 MouseLeave 不可靠?

c# - 如何在C#中动态创建连接字符串

c# - winform 应用程序是否有可能从根目录以外的路径加载其 dll?