string s1 = "Straße";
string s2 = "STRASSE";

int ordinal = string.Compare(s1, s2, StringComparison.OrdinalIgnoreCase); //
= 140
int current = string.Compare(s1, s2,
StringComparison.CurrentCultureIgnoreCase); // = 0

OrdinalIgnoreCase does not use Unicode conversion tables for making letters
uppercase. It makes it faster, but also may produce unexpected results. The
end result for non-english users is annoying.

Sébastien
On Mon, Sep 8, 2008 at 3:02 PM, Per Bolmstedt
<[EMAIL PROTECTED]>wrote:

> Define "won't work". Also, can you shed some more light on why it "won't
> work"?
>
> On Mon, 8 Sep 2008 14:32:02 -0400, =?ISO-8859-1?Q?S=E9bastien_Lorion?=
> <[EMAIL PROTECTED]> wrote:
>
> >It won't work with international characters.
> >
> >Sébastien
> >On Mon, Sep 8, 2008 at 2:19 PM, Per Bolmstedt
> ><[EMAIL PROTECTED]>wrote:
> >
> >> On Mon, 8 Sep 2008 13:23:16 -0400, =?ISO-8859-1?Q?S=E9bastien_Lorion?=
> >> <[EMAIL PROTECTED]> wrote:
> >>
> >>> by using OrdinalIgnoreCase, you are limiting yourself to only the
> >>> first 128 chars of ASCII, which in 2008 is kinda out of fashion...
> >>
> >> How so?
> >>
> >> According to "New Recommendations for Using Strings in Microsoft .NET
> >> "[1]; "Comparisons made using OrdinalIgnoreCase are behaviorally the
> >> composition of two calls: calling ToUpperInvariant on both string
> >> arguments, and doing an Ordinal comparison.".
> >>
> >> 1: http://msdn.microsoft.com/en-us/library/ms973919.aspx
>
> ===================================
> This list is hosted by DevelopMentor(R)  http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com
>

===================================
This list is hosted by DevelopMentor®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to