[英]Adding user input to a string array with while-loop without overwriting the current element at the index C# "Ryggsäck"
所以嗨。 我是 C# 的新手(大约 3 周前开始)并且已经学习了一些编程课程并且遇到了问题。
这是我正在使用的 for 循环,我知道 if 语句看起来与我想要实现的相反,但是当 'if (ruckSack[i].= "")' 我得到了“分配的字符串”,此外, 使用当前代码。 如果我只是将一个空字符串“添加”到已分配的数组中,我知道我给数组一个空字符串作为值。
int i = container;
while (i < 5)
{
if (ruckSack[i] == "")
{
Console.WriteLine("Assigned string");
i++;
}
else
{
Console.WriteLine("Empty string");
}
ruckSack[i] = Console.ReadLine();
i++;
}
所以我有一个数组的显示元素,并从数组中删除元素。 所以我知道除了存储功能外一切正常。 我会使用一个列表,但分配要求一个字符串数组。 如何解决这个问题?
提前致谢!! 最好的祝福
编辑:如果有人想要整个源代码,请告诉我,我会添加它!
如果您想避免用户可以在数组中已有任何字符串的情况下键入输入,则需要将Console.ReadLine()
包含到else
-Block 中。
此外,您将需要使用另一种方法来检查是否将字符串分配为ruckSack[i] == ""
仅当数组包含空字符串 ( ""
) 时才返回 true。 您可以使用string.IsNullOrEmpty(ruckSack[i])
或string.IsNullOrWhitespace(ruckSack[i])
(如果字符串中只有其他空格上的空格,最后一个也返回 true )。
放在一起:
int i = container;
while (i < 5)
{
if (string.IsNullOrWhiteSpace(ruckSack[i]))
{
Console.WriteLine("Assigned string");
i++;
}
else
{
Console.WriteLine("Empty string");
ruckSack[i] = Console.ReadLine();
}
i++;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.