簡體   English   中英

如何從列表中刪除空項目 <string> ?

[英]How to remove empty item from List<string>?

我一直在嘗試從列表中刪除空項目,這是我的意思:

list1.Add("1")
list1.Add("")
list1.Add("  ")
list1.Add("2")

輸出:1 2

這是我嘗試過的:

List<string> list = new List<string>();
List<string> list1 = new List<string>();
list.Add("1  3");
list.Add("     ");
list.Add("        ");
list.Add("2");
for(int i = 0; i < list.Count(); i++)
{
    MatchCollection mc = Regex.Matches(list[i], @"\s");
    foreach(Match m in mc)
    {
        if (!list.Contains(m.ToString()))
            list1.Add(m.ToString());
    }
}

我是編程新手,所以很抱歉這個問題不好

list.RemoveAll(string.IsNullOrWhiteSpace);

盡管要小心,但IsNullOrWhiteSpace檢查的不僅僅是空格。 有關完整列表,請檢查https://docs.microsoft.com/zh-cn/dotnet/api/system.char.iswhitespace?view=netframework-4.7.2

您不需要正則表達式,可以使用string.IsNullOrWhiteSpace方法。

foreach(var item in list)
{
    if(!string.IsNullOrWhiteSpace(item))
    {
        list1.Add(item);
    }
}

使用LINQ的另一種方法:

var filteredList = list.Where(x => !string.IsNullOrWhiteSpace(x)).ToList();

您可以使用方法string.IsNullOrWhiteSpace()

        List<string> listWithEmtyAndNullElements = new List<string>
            { "",
              " ",
              "Hi",
              "Stack     ",
              "    Overflow",
                null
            };

        List<string> onlyStringList = new List<string>();

        for (int i = 0; i < listWithEmtyAndNullElements.Count; i++)
        {
            if (!string.IsNullOrWhiteSpace(listWithEmtyAndNullElements[i]))
            {
                onlyStringList.Add(listWithEmtyAndNullElements[i]);
            }
         }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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