[英]C# I'm using string arrays, and I was hoping to use a “foreach” to Display a list of them
I believe that most of my code is correct for the most part aside from the foreach statement. 我相信除了foreach语句外,我的大部分代码在大多数情况下都是正确的。 I haven't been able to test it however due to the fact that the program isn't compiling.
但是由于程序未编译,我无法对其进行测试。 I'd appreciate any and all help, even if my structure needs to change somewhat.
我将不胜感激,即使我的结构需要进行一些更改,我也将不胜感激。
private static void PickScreen(Human myHuman)
{
var tries = 3;
bool answer = false;
string choice= "";
string[] choices = new string[6];
choices[0] = "Name";
choices[1] = "Age";
choices[2] = "Scar Type";
choices[3] = "Weapon";
choices[4] = "Hero Status";
choices[5] = "Potions";
DisplayNewScreenHeader();
Console.WriteLine(" What screen would you like to go to?");
Console.WriteLine();
foreach (string i in choices)
{
Console.WriteLine(" Screen Choice: {0}", choices[]);
}
Console.WriteLine();
Console.WriteLine(" Or you can type in " + "\"Default\"" + "to not have to do any of the query screens and have your character have default settings.");
while(tries > 0)
{
Console.WriteLine(" Choice: ");
choice = Console.ReadLine();
if (choice.Equals("name", StringComparison.OrdinalIgnoreCase))
{
DisplayGetHeroName(myHuman);
answer = true;
}
else if (choice.Trim().Equals("age", StringComparison.OrdinalIgnoreCase))
{
DisplayGetUsersAge(myHuman);
answer = true;
}
else if (choice.Trim().Equals("Scar Type", StringComparison.OrdinalIgnoreCase))
{
DisplayGetScar(myHuman);
answer = true;
}
else if (choice.Trim().Equals("weapon", StringComparison.OrdinalIgnoreCase))
{
DisplayGetWeapon(myHuman);
answer = true;
}
else if (choice.Trim().Equals("Hero Status", StringComparison.OrdinalIgnoreCase))
{
DisplayGetHeroStatus(myHuman);
answer = true;
}
else if (choice.Trim().Equals("Potions", StringComparison.OrdinalIgnoreCase))
{
DisplayAddBackpackItems(myHuman);
answer = true;
}
else if (choice.Trim().Equals("Default", StringComparison.OrdinalIgnoreCase))
{
Console.WriteLine(" Looks like you went with the lazy way. Anyways go conquer basements, and become ruler of stuff!");
}
else
{
Console.WriteLine(" Dog gone it, yer Missed up a bit tad.");
Console.WriteLine();
Console.WriteLine(" Try again");
tries -= 1;
}
}
if (answer == false)
{
DisplayNewScreenHeader();
Console.WriteLine(" Since you're incompetent you no longer have the option to pick your query screens. They will simply go in order now.");
DisplayGetHeroName(myHuman);
DisplayGetUsersAge(myHuman);
DisplayGetScar(myHuman);
DisplayGetWeapon(myHuman);
DisplayGetHeroStatus(myHuman);
DisplayAddBackpackItems(myHuman);
DisplayReturnPrompt();
}
}
Within a foreach
loop, your variable (in this case i
) is set to each value in the enumeration as the loop continues. 在
foreach
循环中,随着循环的继续,您的变量(在本例中为i
)被设置为枚举中的每个值。 You'll need to change: 您需要更改:
foreach (string i in choices)
{
Console.WriteLine(" Screen Choice: {0}", choices[]);
}
To: 至:
foreach (string i in choices)
{
Console.WriteLine(" Screen Choice: {0}", i);
}
Your foreach
loop should as below as i
is actually one of the entries in choices
您的
foreach
循环应如下所示,因为i
实际上是choices
项之一
foreach (string i in choices)
{
Console.WriteLine(" Screen Choice: {0}", i);
}
As foreach
iterates through your array, i
will have the values: 至于
foreach
遍历您的数组, i
将有值:
choices[1]
choices[2]
choices[3]
.......
etc
Change 更改
Console.WriteLine(" Screen Choice: {0}", choices[]); Console.WriteLine(“屏幕选择:{0}”,options []);
To 至
Console.WriteLine(" Screen Choice: {0}", i); Console.WriteLine(“屏幕选择:{0}”,i);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.