items.IndexOf不打印出位置

时间:2016-07-07 20:31:13

标签: c# arrays foreach

我对C#编程相当陌生,刚刚学习了占位符以及可以在C#中使用的Array库/方法的极大便利。

我编写了一个非常简单的程序,它以3个字符串的填充数组列表开头。据我所知,我的所有内容都是正确的,但无论出于何种原因,我的items.IndexOf()方法只是并且始终将0打印到控制台中。

任何人都可以告诉/教我为什么会这样吗?据我所知,foreach语句应更新数组的值,因此每次传递items.IndexOf()值都应该更改但不是。

这是我的简短代码,我感谢任何建议,提示和帮助!

namespace ConsoleApplication01
{
class Program
{
    static void Main(string[] args)
    {
        string[] items = { "sword", "shield", "potion" };

        WriteLine("Quick! You're being attacked by a Goblin Bruiser!");
        WriteLine("Which item will you use?");

        foreach (string item in items)
        {
            WriteLine("{0} {1}",items.IndexOf(item), item);
        }

        ReadLine();
    }
}
}

enter image description here

更新: 问题是items.IndexOfArray.IndexOf的语法。 我假设因为我的items变量是一个数组,它可以按我下面的代码显示的方式使用。感谢所有教过我的人!

1 个答案:

答案 0 :(得分:4)

你的变量混乱了

for循环中应该items而不是item。像这样:

foreach (string item in items)
{
    WriteLine("{0} {1}", Array.IndexOf(items,item), item);
}