0

私は文字列の配列を持っています。そのほとんどは文字列値「true」または「false」です。そこには他の文字列がありますが、それらを変更したくありません。

文字列をループして、「true」または「false」という単語に遭遇した場所で、文字列を「1」または「0」に変更したい

これらの 1、0 などの文字列は、SQL ストアド プロシージャ IE に渡されるパラメータとして使用されます。

私は単に構文に苦労しているだけなので、ガイドを求めています

string[] data = args.Trim().Split(',');

// Loop over strings
foreach (string s in data)
{
    if(s == "true")
    {
        convert the string True to the string 1
    }
    else if(s == "false")
    {
      convert the string True to the string 0
    }
}

誰かがガイダンスを提供できますか

4

8 に答える 8

2

コードに欠けているのは、チェックしている配列の場所への参照です。

ループを使用するforと、その参照を保持できます。

string[] data = args.Trim().Split(',');

// Loop over strings
for(int i = 0; i < data.Length; i++)
{
    if(data[i] == "true")
    {
        data[i] = "1";
    }
    else if(data[i] == "false")
    {
        data[i] = "0";
    }
}

注 - 上記では大文字と小文字が区別されるため、文字列テストをdata[i].Equals("true", StringComparison.InvariantCultureIgnoreCase).

于 2013-04-16T12:01:22.877 に答える
1

新しい配列を返すLINQバージョンは次のとおりです。

string[] newData = data.Select(r => (r == "true" ? "1" : r == "false" ? "0" : r))
                        .ToArray();

または、大文字と小文字を区別しない場合は、次のようにします。

newData = data.Select(r => 
           (r.Equals("true", StringComparison.CurrentCultureIgnoreCase) ? "1" 
           :r.Equals("false", StringComparison.CurrentCultureIgnoreCase) ? "0" 
           : r))
           .ToArray();
于 2013-04-16T12:03:38.530 に答える
1

これは役立つはずです:

   string[] data = args.Trim().Split(',');

    for(int i = 0; i < data.Length; i++)
    {
        if(data[i] == "true")
        {
            data[i] = "1";
        }
        else if(data[i] == "false")
        {
            data[i] = "0";
        }
    }

また、次のようにしてコードを少し短くすることもできます。

   string[] data = args.Trim().Split(',');

    for(int i = 0; i < data.Length; i++)
    {
        data[i].Replace("true", "0").Replace("false", "1");
    }
于 2013-04-16T12:01:55.367 に答える
0

LINQ 式に移動します。

var parsedData = data.Trim()
.Where(d => d == "true" || d == "false")
.Select(d => bool.Parse(d) ? "1" : "0")
.ToList();
于 2013-04-16T12:07:21.387 に答える