#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. Извините, это просто грязно и уродливо.