繁体   English   中英

C#检查数组索引的变量?

[英]C# Checking a variable against a arrays index?

抱歉,标题不够清楚,但这是我的问题。

所以我有这个数组:

public static string[] stringArray = new string[3] {"Menu", "Options", "Exit"};

和这个变量:

public static int pointerLocation = 0;

现在我的最终目标是检查例如pointerLocation是否等于数组的任何索引。 然后打印>“选定”项目或当前索引的最前面。

我的问题是当我检查是否pointerLocation == stringArray[0]时,我当然会遇到无法比较字符串和整数的问题。

那我该怎么做才能解决这个问题?

编辑:

这正是我想做的。 我试图在控制台中创建一个菜单,我希望用户希望能够看到所选择的内容,因此它将如下所示:

> Start
Options
Exit

而且我想>印在lne上,其中数组中项目的索引等于我的变量pointerLocation,是否有意义?

同样,当按下向上/向下箭头时,pointerLocation变量将递增/递减

我想这样会有所帮助

for (int i = 0; i < stringArray.Length; i++)
{
    if (i == pointerLocation)
    {
        Console.WriteLine("> " + stringArray[pointerLocation]);
    }
    else
    {
        Console.WriteLine(stringArray[pointerLocation]);
    }
}

让我建议一些变量重命名

  • stringArraymenuItems
  • pointerLocation →已selected

您可以在访问它之前测试一下pointerLocation索引是否严格小于数组的大小:

if (pointerLocation < stringArray.Length)
{
    // You can access and use the value at the specified index safely here
    string value = stringArray[pointerLocation];
    Console.WriteLine(value);
}

如果要比较数组中任何值的索引,则只需:

public static string[] stringArray = new string[3] {"Menu", "Options", "Exit"};
public static int pointerLocation = 0;
if(pointerLocation==Array.IndexOf(stringArray, "Menu"))
{
   Console.WriteLine(stringArray[pointerLocation]);
}

但是,如果数组包含多个值,则函数仅返回匹配值的第一个索引。

暂无
暂无

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

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