[英]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]);
}
}
让我建议一些变量重命名
stringArray
→ menuItems
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.