我正在寻找一种方便的方式来删除空字符串作为它们的值的列表项目。方便的方法从集合中删除空字符串
我知道我可以检查每个字符串,以查看它是否为空之前加载到列表中。
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