-2

19セットの桁を持つlong[]型の配列があり、次にchar []型の別の配列があります。ユーザーが「45324」と入力すると、long []配列でその入力のインデックスを見つけて、 char []配列にインデックスを付けてから、その場所の値を出力します。

したがって、45324インデックスは12であり、char []配列の12番目の項目は'#'である可能性があります。ループを試しましたが、pfftはすべての試行で失敗しています。コードを書き直して、それらすべての値を別の種類の配列に再度ハードコードする必要はありません。

4

5 に答える 5

1
int index = Array.IndexOf(array, long.Parse("45324"));
于 2012-11-14T10:29:17.593 に答える
0
for(int i = 0; i < longArray.Length; i++)
{
  if(longArray[i].ToString() == input)
  {
    return i;
  }
}

return -1;
于 2012-11-14T10:29:20.137 に答える
0

データがあまり変化しない場合は、Linqを使用して結果を辞書に変換し、ユーザー入力文字列に基づいて迅速に検索を実行できます。

longslong 配列が呼び出され、char 配列が呼び出されると仮定しますchars

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

これで、入力文字列を使用して確認できます...

例えば

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

また

char value= dict[userInput];
于 2012-11-14T10:56:06.120 に答える
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];
        // ...
    }
}
于 2012-11-14T10:42:54.410 に答える
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];
于 2012-11-14T10:44:10.057 に答える