c# - 我如何更改此代码以使其停止循环但显示相同的内容?

标签 c# arrays

我正在尝试编写我的程序,以便在输入的数组隔间被占用时,它会告诉用户哪些隔间是空的。但是,我不知道如何更改代码以使其停止循环但显示相同的内容。这是我的代码:

                for (int i = 0; i < compartmentno.Length; i++)
                {
                    if (compartmentno[i] == 0)
                    {
                        MessageBox.Show("Available compartments are" + (i + 1).ToString());
                    }
                }

如何让程序只显示一个包含所有可用隔间的消息框,而不是显示 10 个消息框?在此先感谢您的帮助!

最佳答案

您可以为此使用 LINQ:

int availableCompartments = compartmentno.Count(x=> x == 0);

MessageBox.Show("Available compartments are:" + availableCompartments.ToString());

WORKING FIDDLE EXAMPLE

这是公寓号码:

public static void Main()
{

  int [] compartmentNo = { 1,3,5,6,7,8,9,0,4,0};


  var availableCompartments = compartmentNo
                             .Select((value, index) => new {index, value})
                             .Where(x=> x.value == 0)
                             .Select(x=>x.index);

  int Count = availableCompartments.Count();

  string Values = String.Join(",",availableCompartments);

  Console.WriteLine(String.Format("No of Aparments : {0} and aprtments No : {1}",Count,Values));


}

UPDATED FIDDLE DEMO

关于c# - 我如何更改此代码以使其停止循环但显示相同的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27009031/

相关文章:

c# - 在 C# 或 .NET 中,有没有办法阻止其他线程调用特定线程上的方法?

c# - Combobox datagridview选择更改了datagridview其他单元格中的填充值

c# - 使用MediaPlayer播放WAV文件

c - 如何使用 sprintf 在特定位置写入 C 中的 char 数组?

javascript - 使用 for 循环追加数组

arrays - 检查列表是否为空或 null flutter

c# - Asp.Net core实时数据库?

c# - 访问路径被拒绝,在 Ubuntu 上运行 Asp.net core 2.0

java - while 循环在 for 循环中,困惑吗?

ios - xcode swift 3D 数组