2014-09-28 73 views
0

对不起,如果标题不够清楚,但继承我的问题。C#根据数组索引检查变量?

,所以我有这个数组:

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

和这个变量:

public static int pointerLocation = 0; 

现在我的最终目标是检查,例如,如果pointerLocation等于阵列中的任何指标。 然后打印“选定”项目或当前索引的infront。

我的问题是,当我检查如果pointerLocation == stringArray[0]我当然面临的问题是无法比较字符串和int的问题。

那么我能做些什么来解决这个问题?

编辑:

继承人究竟是什么即时通讯试图做。 我试着去创造在控制台菜单,我想用户想要什么选择,以便它看起来像这样能够看到:

> Start 
Options 
Exit 

,我想的>要在LNE其中印刷该数组中的项目的索引等于我的变量pointerLocation,如果这是有道理的?

另外,pointerLocation变量将被增大/减小的向上/向下箭头被压

+0

你实际上试图查看数组是否在索引0处有一个值?或者如果数组有任何项目呢? – 2014-09-28 17:04:12

+0

@YuvalItzchakov我已更新我的帖子来显示我想要的更好 – 2014-09-28 17:08:30

+0

您的问题仍然没有意义。这听起来像你实际上想要将你的变量与'0'进行比较。尝试编写实际的代码,看看会发生什么。 – SLaks 2014-09-28 17:11:16

回答

0

你可以测试是否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); 
} 
1

我想这样的事情会帮助

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

让我提出一些变量命名

  • stringArraymenuItems
  • pointerLocationselected
+0

更新OP以更好地解释它 – 2014-09-28 17:08:47

0

如果你要比较数组中的任意值的指数,所以它只是:

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]); 
} 

但是,如果阵列中包含多个一个值,所以函数只返回匹配值的第一个索引。