繁体   English   中英

使用 while 循环将用户输入添加到字符串数组,而不覆盖索引 C# "Ryggsäck" 处的当前元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM