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做删除(“”); 但我无法删除以\ t开头的行/索引\ s。 执行删除(“\ t”);或(@“\ t”);没有用。
答案 0 :(得分:3)
您可以使用RemoveWhere方法。
alreadyPost.RemoveWhere(p => p.StartsWith("\t"));
<强>更新强>
只删除每个项目中的\t
字符,但保留项目(请参阅注释),您可以执行以下操作:
alreadyPost = new HashSet(
alreadyPost.Select(p => p.StartsWith("\t") ? p.Substring(1) : p)
);
答案 1 :(得分:0)
我通常会阻止将这些项目添加到集合中,而不是之后将其删除。但是,如果您真的想要,可以使用以下代码:
foreach (var item in alreadyPost.ToList())
{
if (item.StartsWith("\t"))
{
alreadyPost.Remove(item);
}
}