我有一个包含24个元素的字符串数组。这些24代表一箱苏打水。首先将询问用户要放入哪种类型的苏打水。可以是一个,20个或全部24个。
然后我想要一个选项,以便用户可以打印出板条箱中的内容,我可以使用for / foreach循环执行此操作,但是我也可以打印出空白内容,即使它们在控制台的空白处也是如此。当然,但是我要么只希望打印出具有值的元素,而不是空格,要么希望空格说空!
我如何最好地做到这一点?
谢谢!
*编辑,谢谢大家,许多好工具,我会从这里尝试!
答案 0 :(得分:1)
您可以使用LINQ Where
来检查集合中某些元素是否满足条件。
using System.Linq;
var items = new string[] {"Cola", "", "Fanta", null, "Sprite", " "};
string[] nonEmptyItems = items.Where(i => !string.IsNullOrWhiteSpace(i)).ToArray();
foreach(var nonEmpty in nonEmptyItems) {
Console.WriteLine(nonEmpty);
}
答案 1 :(得分:0)
我想先检查一下数组是否为空。如果为空,请不要打印。
否则,因为我假设您要向包装箱中添加苏打水,所以只需在数组的长度范围内构建“ for”语句即可。
即使您使用的是foreach,您仍然可以跳过其中没有任何内容的对象,只需检查其值,如果其值为null / empty,则将其跳过。
答案 2 :(得分:0)
这怎么样?
var values = new []
{
"v1", "v2", null, "v4"
}.ToList();
var withValues = values.Where(v => !string.IsNullOrEmpty(v)).ToList();
这只会返回带有值的项目。
要写出控制台,请执行以下操作
values.Where(v => !string.IsNullOrEmpty(v)).ToList().ForEach(v =>
{
Console.WriteLine(v);
});
答案 3 :(得分:0)
只需使用代表特定用户选择的List<string>
。用户选择一种类型的苏打水后,立即将其添加到您的列表中。
E。 g。:
List<string> crate = new List<string>;
...
string sodaselection = YourLogicForSelectingASoda();
if (!string.IsNullOrEmpty(sodaselection))
{
crate.Add(sodaselection);
}
答案 4 :(得分:0)
string[] sodaCrate = new string[24];
foreach (string s in sodaCrate)
{
if (string.IsNullOrEmpty(s))
continue;
//do the stuff you want
}
这将遍历您的汽水箱,检查条目是否为空或为空,如果是,则继续到下一个。
答案 5 :(得分:0)
这将解决您的问题
foreach(var data in items.Where(i => !string.IsNullOrWhiteSpace(i))) {
Console.WriteLine(data);
}