簡體   English   中英

如何從HashSet List中刪除“\\ t”?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM