2

だから、基本的にはいくつかのアルゴリズムを練習しています。そして、number[i] の値を設定しようとすると、次のコードでエラーが発生する理由を理解しようとしていますか? おそらく単純なことはわかっていますが、「なぜ」機能しないのかわかりません。

public int SumOfRandomNumbersWithStrings(string randomness)
{
    //Get the value of each index in the array
    string number = "";
    for (int i = 0; i < randomness.Length; i++)
    {
        number[i] = randomness[i];
    }
    //temporarily one until I finish the algorithm
    return 1;
}
4

3 に答える 3

5

number[i] の値を設定しようとすると、次のコードでエラーが発生する理由

C# の文字列は不変だからです。

ただし、文字の配列は可変であるため、次のようにすることができます。

char number[] = new char[randomness.Length];
for (int i = 0; i < randomness.Length; i++)
{
     number[i] = randomness[i];
}
string numStr = new string(number);
//temporarily one until I finish the algorithm
return 1;

C# で文字列を作成する最も一般的な方法は、StringBuilderクラスを使用することです。文字列内の文字を追加、削除、または置換することで、文字列の内容を変更できます。

于 2012-10-02T16:57:19.377 に答える
1

さて、文字列の連結を実行しようとしている場合は、次のように変更しましょう。

public int SumOfRandomNumbersWithStrings(string randomness) 
{ 
    StringBuilder sb = new StringBuilder();

    //Get the value of each index in the array 
    for (int i = 0; i < randomness.Length; i++) 
    { 
        sb.Append(randomness[i]);
    } 

    //temporarily one until I finish the algorithm 
    return 1; 
} 

ただし、配列を構築しようとしている場合は、number次のように変更しましょう。

public int SumOfRandomNumbersWithStrings(string randomness) 
{ 
    //Get the value of each index in the array 
    char[] number = new char[randomness.Length]; 
    for (int i = 0; i < randomness.Length; i++) 
    { 
        number[i] = randomness[i]; 
    } 

    //temporarily one until I finish the algorithm 
    return 1; 
} 
于 2012-10-02T16:59:16.663 に答える
1

number空文字列だからです。代わりに連結演算子を使用します。

number = number + randomness[i];
于 2012-10-02T16:55:46.550 に答える