我正在尋找一種方便的方式來刪除空字符串作爲它們的值的列表項目。方便的方法從集合中刪除空字符串
我知道我可以檢查每個字符串,以查看它是否爲空之前加載到列表中。
List<string> items = new List<string>();
if (!string.IsNullOrEmpty(someString))
{
items.Add(someString);
}
但是,這似乎有點麻煩,特別是如果我有很多字符串添加到列表中。
或者,我可以加載的所有字符串無論是空或不:
List<string> items = new List<string>();
items.Add("one");
items.Add("");
items.Add("two")
然後遍歷列表,如果一個空字符串被發現將其刪除。
foreach (string item in items)
{
if (string.IsNullOrEmpty(item))
{
items.Remove(item);
}
}
這些是我唯一的兩個選擇,也許Linq有一些東西嗎?
感謝您的任何幫助。
爲什麼在添加之前檢查空字符串會很麻煩?如果你正在創建這個列表,那麼你完全可以控制進入它的內容 - 爲什麼要在事實之後進行過濾? – 2013-05-03 13:21:47
之後刪除空元素的麻煩是'.Remove'強制複製要刪除的元素後面的所有元素,並向下移動一個索引位置。所以,有很多字符串,你最好創建一個沒有這些空元素的新列表。但是,爲什麼不應該留下那些空的元素呢? – JeffRSon 2013-05-03 13:38:38
@ChrisMcAtackney所以,我會得到這樣的事情: if(!string.IsNullOrEmpty(string1)) items.Add(string1); if(!string.IsNullOrEmpty(string2)) items.Add(string2); if(!string.IsNullOrEmpty(string3)) items.Add(string3); 還是有更優美的方式我失蹤? – Baxter 2013-05-03 13:41:26