[英]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.