如何从哈希集列表中删除"t"?


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

变量已经发布是哈希集我可以通过删除(")从中删除空行;但是我无法删除开头以 \t 开头的行/索引。执行删除("\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);
    }
}

最新更新