bool が文字列として入っている変数を判定する場合の注意です。
こういう書き方でも要件は満たせますが、文字列として "True" とかソースに書いちゃうのはあまり良くないですね。
今回のような判定を何万行も繰り返すのはデータコンバート以外ではないでしょうが、覚えておくといいと思います。
大文字/小文字を区別しないで文字列を比較するには?[C#、VB]
http://www.atmarkit.co.jp/fdotnet/dotnettips/624ignorecase/ignorecase.html
C#におけるboolの判定
よくありがちな書き方です。こういう書き方でも要件は満たせますが、文字列として "True" とかソースに書いちゃうのはあまり良くないですね。
var boolValue1 = "True";
if (boolValue1 == "True")
{
// 文字列は True。条件にマッチします。
}
if (boolValue1 == "true")
{
// 条件にマッチしません
}
if (boolValue1.ToUpper() == "true".ToUpper())
{
// 条件にマッチするけど、イケてない書き方です。
}
string.Compare を使った例です。if (string.Compare(boolValue1, bool.TrueString, true) == 0)
{
// 文字列は True。true でもいいし、TRue でもマッチします。
}
bool 値を文字列で返してくれる bool.TrueString はあまり目にしませんが、これなら文字列として "true" とか書かなくてもいいので覚えておくとスマートな書き方になります。また、string.Compare の方が、ToUpper() よりもパフォーマンスは良いです。 今回のような判定を何万行も繰り返すのはデータコンバート以外ではないでしょうが、覚えておくといいと思います。
大文字/小文字を区別しないで文字列を比較するには?[C#、VB]
http://www.atmarkit.co.jp/fdotnet/dotnettips/624ignorecase/ignorecase.html
