文字列を==
と比較するのがよい方法ですか? Compare
のs1 == s2
に相当し、のEquals
の方法に相当するものがありますか?これらのメソッドを使用する場合は、CultureInfo
FxCopを指定しないと警告が出ますが、それは本当の問題ですか?C#の文字列を '=='と比較することをお勧めしますか?
答えて
==
オペレータは、文化的に認識されない順序の比較文字列です。それは.Equals
と同じ内部呼び出しを使用し、 "通常の"文字列比較のものには問題ありません。
あなたはドイツのダブルSまたはSSのような文化を意識しcomparingsを(例えばGUIの目的のために)、必要がある場合は、文字列を比較するとき、あなたはどのような種類を明示的に指定する方法を使用する必要があります
CultureInfo ci = new CultureInfo("de-DE");
String.Compare("Strasse", "Straße", true, ci)
はい、その練習は問題ありません。 String.Compareを使用して、Best Pratices for Using Strings in the .NET Frameworkにある比較のベストプラクティスを使用することもできます。
はい、FxCopは警告を表示しますが、警告は警告です。あなたが文化を気にしないならば、それを無視することは安全です。しかし、実際の生活の警告のように、それは時々それらに注意を払う。
を使用あなたが実行しようとしている比較の。これにより、コードはずっとメンテナンスと読み込みが容易になります。可能な限り、StringComparison列挙型パラメータを受け取るSystem.StringおよびSystem.Arrayクラスのメソッドのオーバーロードを使用して、実行する比較の種類を指定できるようにします。文字列を比較するときは、==演算子と!=演算子を使用しないでください。また、String.CompareToインスタンスメソッドの使用は避けてください。オーバーロードのいずれもStringComparisonを使用しないためです。
ニーズに応じて、次の方法で使用することができます。
bool result = root.Equals(root2, StringComparison.Ordinal);
result = root.Equals(root2, StringComparison.OrdinalIgnoreCase);
bool areEqual = String.Equals(root, root2, StringComparison.Ordinal);
ソースをこの答え:http://msdn.microsoft.com/en-us/library/cc165449.aspxは
について序と文化を語るMSDN上extensivedocumentationあり-sensitive文字列の比較。 序文比較は言語学を気にせず、デフォルトで大文字と小文字を区別します。 文化に敏感なの比較は、言語学(ケース、パンキュレーションなど)を気にします。
dotnetperlsのthis articleは、パフォーマンスの意味合いを掘り下げ、文字列比較の2つの方法(==
およびequals
)のILとベンチマークを表示します。
そして、最後に、このquestionは==
は厳密序文字列の比較とローカライズされた文字列には適していないことを示しています。
文字列がnullまたは空(別名 "")の場合は、string.IsNullOrEmpty(...);を使用します。
それ以外の場合は、私の本や大部分のもので問題ありません。あなたのやり方によって異なります。
- 1. Cの文字列と文字列を比較する
- 2. 配列のインデックスをCに含めることをお勧めしますか?
- 3. 文字列とPHPの文字列を比較しますか?
- 4. C++で文字列と文字列を比較する
- 5. Cの文字列と文字列ポインタを比較すると同等です
- 6. データ型文字列とC#の文字列との比較
- 7. charと文字列の比較 - C
- 8. C#Linq文字列とindexOfの比較
- 9. C#SQL Serverと文字列の比較
- 10. 文字列を目的のCの配列と比較する
- 11. 文字列と文字列とをアンドロイドで比較する
- 12. 文字を比較することができません(C++)
- 13. JSONのすべてのデータ型に文字列を使用することをお勧めしますか?
- 14. Guidと文字列を比較する
- 15. パターンと文字列を比較する
- 16. すべてのconst文字列を参照することをお勧めしますか?
- 17. DataContractSerializerインスタンスをキャッシュすることをお勧めしますか?
- 18. 文字列と配列を比較するC++
- 19. C++文字列の比較
- 20. 文字列の比較C#
- 21. C++文字列の比較
- 22. C#の文字列比較#
- 23. C++文字列の比較
- 24. 文字列内の文字と文字を比較しますか?
- 25. 配列文字列と文字列を比較する
- 26. C#の変数jsonの値を文字列と比較する
- 27. 文字列と他の文字列をシーケンシャルで比較する
- 28. Elmの文字列と文字列を比較する
- 29. C#2つの文字列をカスタムルールと比較する
- 30. Genericの文字列とintを比較する方法C#
どのような比較をしたいですか? –
あなたは何を比較しているかによって異なります - msdnはこれに最適です。http://msdn.microsoft.com/en-us/library/cc165449aspx – JonH
このページは良い解説をしています:http://www.dotnetperls.com/string-equals – keyboardP