【问题标题】:Check for the first unfilled Array Element C#检查第一个未填充的数组元素 C#
【发布时间】:2014-11-27 22:19:00
【问题描述】:

我目前正在开发一个控制台应用程序来管理学生。我已经设置了类和方法,并且它们是可访问的。但是,当我编辑“add”方法时,我使用 for 循环创建一个 INTEGER,其中包含包含“”的数组元素。

我用

for (int i = 0; p.students[i] != ""; i++)
{
    Console.WriteLine(i);
    Console.ReadKey();
}

它应该从零开始,如果 i = "".. 的值的数组元素将 i 加 1 并重新开始。但是它似乎停在 0。我知道前 3 个元素有内容,而第 4 个元素是“”。

知道我做错了什么吗?

提前致谢, 布莱恩

【问题讨论】:

  • 如果数组包含学生对象,则没有一个可能是“”。使用List<Student> 来避免问题 - 它们永远不会有空元素。
  • 如何填写 p.students 以及“似乎停止”是什么意思?
  • 您能否创建一个带有实际和预期输出的mcve?很难说你想做什么。
  • @Plutonix 我有第四个也是最后一个包含“”的元素

标签: c# arrays for-loop


【解决方案1】:

首先使用表达式

p.students[i] != ""

因为循环条件是一种非常糟糕的做法。

你可以用下面的代码来实现:

for (var i = 0; i < p.students.Lenght; i++)
{
   if(p.students[i] == string.Empty)
   { 
      Console.WriteLine(i);
      Console.ReadKey();
   }
}    

【讨论】:

    【解决方案2】:

    使用 LINQ:

    p.students.Select((s, i) => new { Student = s, Num = i })
              .Where(e => e.Student == string.Empty)
              .ToList().ForEach(e => Console.WriteLine(e.Num));
    

    【讨论】:

      猜你喜欢
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 2019-05-27
      相关资源
      最近更新 更多