在long []数组中查找索引

时间:2012-11-14 10:26:08

标签: c# .net arrays

我有一个带有19组数字的long []数组,然后是另一个char []类型的数组,当用户输入“45324”时我需要在long []数组中找到该输入的索引并将索引传递给char []数组,然后在该位置输出值。

所以45324索引可能是12而char []数组中的第12项可能是'#'我试过循环但是pfft我只是在每次尝试都失败了。我宁愿不必重写代码并将所有这些值再次硬编码到不同类型的数组中。

5 个答案:

答案 0 :(得分:1)

int index = Array.IndexOf(array, long.Parse("45324"));

答案 1 :(得分:0)

for(int i = 0; i < longArray.Length; i++)
{
  if(longArray[i].ToString() == input)
  {
    return i;
  }
}

return -1;

答案 2 :(得分:0)

您可以使用Array.IndexOf来确定数组中值的索引。

long numberValue;

// First parse the string value into a long
bool isParsed  = Int64.TryParse(stringValue, out numberValue);

// Check to see that the value was parsed correctly
if(isParsed)
{
    // Find the index of the value
    int index = Array.IndexOf(numberArray, numberValue);

    // Check to see if the value actually even exists in the array
    if(index != -1)
    {
        char c = charArray[index];
        // ...
    }
}

答案 3 :(得分:0)

怎么样:

long input = Int64.Parse("45324");
int index = Array.IndexOf(long_array, input);
char output = default(char);
if(index != -1)
  output = char_array[index];

或者:

long input = Int64.Parse("45324");
int index = -1;
for(int i = 0; i < long_array.Length; i++){
    if(long_array[i] == input){
        index = i;
        break;
    }
}
char output = default(char);
if(index != -1)
   output = char_array[index];

答案 4 :(得分:0)

如果数据变化不大,您可以使用 Linq 将结果转换为字典,从而允许您根据用户输入字符串执行快速查看。

假设您的长数组被称为longs并且您的char数组被称为chars

var dict=longs
         .Select((x,i)=>new {Key=x.ToString(),Value=chars[i]})
         .ToDictionary(x=>x.Key,x=>x.Value);

现在您可以使用输入字符串进行检查......

e.g。

if (!dict.ContainsKey(userInput)) // value not in the collection

char value= dict[userInput];