проблемы с массивами в C#

#c# #arrays

#c# #массивы

Вопрос:

 Console.WriteLine("Please enter your number of the Names : ?");
int x = Convert.ToInt32(Console.ReadLine());
string[] names = new string[x];
for (int i = 0; i < x; i  )
{
    Console.Write("Enter Name no.{0} :  ", i   1);
    names[i] = Console.ReadLine();
}

Console.WriteLine("the items are {0}", names);
Console.ReadKey();
  

Теперь, когда я хочу ввести имена, он просто печатает первое введенное имя!

Например, если у меня есть 5 имен, в последней строке в

 Console.WriteLine("the items are {0}", names);
  

он просто выводит 1-е имя!

Ответ №1:

Вы также захотите выполнить цикл в конце

Либо for цикл, либо foreach текущий способ, который вы используете, Console.WriteLine() использует string.Format() перегрузку

 foreach (string name in names)
{
    // Write out here
    Console.WriteLine(name);
}
  

Комментарии:

1. спасибо, приятель! проблема в том, что мне не разрешено использовать string. Перегрузка Format() Благодаря

2. Вы используете его, он просто не делает то, что вы ожидаете. Это полезно для таких вещей, как: sting.format("I like to {0} during the {1}", "Walk", "Day");

3. ПРОСТО ПОТРЯСАЮЩЕ! Я УСТАЛ 72 раза, наконец, это помогло мне собрать код воедино… Программирование похоже на свободное написание, никто не должен быть связан правилами! 🙂

Ответ №2:

Соедините строки вместе с нужным разделителем, прежде чем передавать их в writeline.

Используйте строку.Присоединяйтесь, чтобы сделать это.

Передача массива в WriteLine заставляет думать, что вы передаете массив со значениями для форматирования.

Комментарии:

1. спасибо, приятель, мне не нужно просто распечатывать его, я имею в виду передать его в строку записи, но и в другой цикл, содержимое которого я заменяю другой строкой!

Ответ №3:

Вы должны выполнить цикл.

 Console.Write("the items are");
for (int i = 0; i < names.Length;   i)
{
    Console.Write(" ");
    Console.Write(names[i]);
}
Console.WriteLine();
  

Ответ №4:

 //Console.WriteLine("the items are {0}.", String.Join(", ", names));
string argsFormat = ( 1 < x) ?
    String.Join(", ", Enumerable.Range(0, x).Select(n => "{"   n   "}").ToArray())
    .Replace(", {"   (x-1)   "}", " and {"   (x-1)   "}")   "." 
    :
    argsFormat = "{0}.";
Console.WriteLine("the items are "   argsFormat , names);
  

Комментарии:

1. Извините, это просто грязно и уродливо.