2017-12-28 9 views
0

FluentAssertionsを使用して、大文字と小文字を区別しない簡単な比較方法を教えてください。FluentAssertionsを使用して大文字と小文字を区別しない文字列を比較するには? C#

のような何か:

symbol.Should().Be(expectedSymbol, StringComparison.InvariantCultureIgnoreCase);

編集:可能な重複やコードについて: symbol.Should().BeEquivalentTo(expectedSymbol);

それはのCurrentCultureを使用して比較しています。そしてそれはトルコの文化のような状況でブレーキをかけるでしょう。どこ Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR", false); string upper = "in".ToUpper(); // upper == "İN" "in".Should().BeEquivalentTo("In"); // It will fail

ので、一部は "StringComparison.InvariantCultureIgnoreCaseは" ここに非常に重要です。あなたが代わりにBe使用のBeEquivalentTo

symbol.Should().BeEquivalentTo(expectedSymbol); 

BeEquivalentToメタデータを

symbol.ToLower().Should().Be(expectedSymbol.ToLower()); 

OR

を使用することができます

+1

比較している文字列に '.ToLower()'を呼び出さないのはなぜですか? – Glubus

+0

@Glubusはより良い方法を探しています。 'ToLower()'を使用して失敗すると、FluentAssertionsは変更された値をラポートします(小文字)。 –

答えて

0

を述べた文字列がexacであることを表明しますケーシングを除き、先頭または末尾の空白を含む別の文字列と同じです。

+0

それは素晴らしいですが、私が質問に追加したように、それはトルコの文化のために失敗するでしょう。 –

+0

次に、重複した質問の回答を使用します。 => string.Compare(o1、o2、StringComparison.InvariantCultureIgnoreCase)) ''%s 'は、 –

関連する問題