C# 我怎样才能删除“\";从HashSet列表? private void ReadKeysValues() { 如果(文件.Exists(@“c:\Temp\WritePostedAlready.txt”)) { UnionWith(文件.ReadAllLines(@“c:\Temp\WritePostedAlready.txt”); for(int i=0;ip.StartsWith(“\t”)

C# 我怎样才能删除“\";从HashSet列表? private void ReadKeysValues() { 如果(文件.Exists(@“c:\Temp\WritePostedAlready.txt”)) { UnionWith(文件.ReadAllLines(@“c:\Temp\WritePostedAlready.txt”); for(int i=0;ip.StartsWith(“\t”),c#,winforms,C#,Winforms,变量alreadyPost是HashSet 我可以通过删除(“”)从中删除空行; 但我无法删除以\t开头的行/索引。 正在删除(“\t”);或(@“\t”);不工作。您可以使用该方法 alreadyPost.removehere(p=>p.StartsWith(“\t”) 更新: 要仅从每个项目中删除\t字符,但保留项目(请参见注释),可以执行以下操作: private void ReadKeysValues() { if (File.Exists(@"c

变量alreadyPost是HashSet 我可以通过删除(“”)从中删除空行; 但我无法删除以\t开头的行/索引。 正在删除(“\t”);或(@“\t”);不工作。

您可以使用该方法

alreadyPost.removehere(p=>p.StartsWith(“\t”)

更新:

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

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 = new HashSet(
    alreadyPost.Select(p => p.StartsWith("\t") ? p.Substring(1) : p)
);

我确实认为应该删除制表符,而不是移动整个索引的字符串\tzahorak。例如,如果索引6是\t hello everyone。然后现在整个索引都消失了。相反,我有9个索引,8个。我只想删除\t。我不确定\t的作用,但我只想删除它,而不是删除整行。您也删除了代码中的所有项,所以我想这就是您要做的。否则,无法更新
哈希集中的项目
,您只需删除它们并再次添加修改版本即可。-请参阅我的更新以获取新的哈希集,其中每个项目开头的
\t
将被删除。
foreach (var item in alreadyPost.ToList())
{
    if (item.StartsWith("\t"))
    {
        alreadyPost.Remove(item);
    }
}