1

Windows Azureストレージテーブルを使用していて、オブジェクトをクエリしたいと思います。ユーザーが文字列を入力します。これは、データベースで次のように検索します。

var myKey = "SomeCaseSensitiveKeyInputByTheUser";

var someObject = (from o in dataContext.Objects
    where o.SomeString.Equals(myKey)
    select o).FirstOrDefault();

ただし、何らかの理由で、すべての文字列の比較では大文字と小文字が区別されないように見えます(==との両方string.Equals())。ただし、ユーザー入力文字列の大文字と小文字を正確に一致させる必要があります。

LINQクエリでこれを行うにはどうすればよいですか?

4

1 に答える 1

1

Using==は、.Equals(..)そのメソッドを呼び出すだけなので、 と同じです。string.comparison列挙型を渡す Equal() のオーバーロードを使用して、大文字と小文字を区別する比較を強制的に使用することができます

CurrentCulture                   Compare strings using culture-sensitive sort rules and the current culture.
CurrentCultureIgnoreCase         Compare strings using culture-sensitive sort rules, the current culture, and ignoring the case of the strings being compared.
InvariantCulture                 Compare strings using culture-sensitive sort rules and the invariant culture.
InvariantCultureIgnoreCase       Compare strings using culture-sensitive sort rules, the invariant culture, and ignoring the case of the strings being compared.
Ordinal                          Compare strings using ordinal sort rules.
OrdinalIgnoreCase                Compare strings using ordinal sort rules and ignoring the case of the strings being compared.

詳細:

http://msdn.microsoft.com/en-us/library/system.stringcomparison.aspx

于 2012-05-22T13:47:36.497 に答える