String オブジェクトの IndexOf() メソッドがどのように機能するのかわかりません。そのため、次の 2 つの実装でどれが他よりも優れているかを知りたいと思います。
最初に、問題について少し紹介したいと思います。単純に、ここで実装された関数/メソッドは、唯一のパラメーターとして文字を持ち、渡された文字に対応する別の文字を発行/返す必要があります。ソースの char コレクションと宛先の char コレクションは以下のとおりです):
a <=> 9
b <=> 8
c <=> 7
d <=> 6
e <=> 5
f <=> 4
g <=> 3
h <=> 2
i <=> 1
j <=> 0
上記のルールは簡単に理解できるように作成されていることに注意してください。これは固定されたルールではなく、任意のルールにすることができるため、そのルールに基づいてこれらのメソッドを別の方法で実装しないでください。
今、私が比較したい2つの方法があります:
1. 最初のものは非常に短く、IndexOf() に基づいています
string source = "abcdefghij";
string destination = "9876543210";
public char SourceToDest(char c){
return destination[source.IndexOf(c)];//Suppose the c is always in source.
}
2. 2 番目はより長く、switch case を使用します。
public char SourceToDest(char c){
switch(c){
case 'a': return '9';
case 'b': return '8';
case 'c': return '7';
case 'd': return '6';
case 'e': return '5';
case 'f': return '4';
case 'g': return '3';
case 'h': return '2';
case 'i': return '1';
case 'j': return '0';
}
}
前述したように、ルールは簡単に従うように作られていますが、これに気付かない場合は、次のような別の方法があるかもしれません。
public char SourceToDest(char c){
return (char)(154 - (int)c); //154 = 106 + 48
}
私が提示した2つの方法の両方よりも優れた別の方法があれば、私と共有してください.