繁体   English   中英

C#中的数组问题

[英]issues with Arrays in 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);

它只是打印出第一个名字!

您也想在最后做一个循环

for循环或foreach ,当前使用Console.WriteLine()是使用string.Format()重载

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

将字符串与所需的分隔符连接在一起,然后再将它们传递到writeline。

使用string.Join这样做。

将数组传递给WriteLine会使您认为您正在传递带有要格式化的值的数组。

您必须做一个循环。

Console.Write("the items are");
for (int i = 0; i < names.Length; ++i)
{
    Console.Write(" ");
    Console.Write(names[i]);
}
Console.WriteLine();
//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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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