読者です 読者をやめる 読者になる 読者になる

たぷつきません

おなかがでてきた。もうたぷついてるやん。

CompareOptionsの説明がドイヒー

 書いていること守って組み合わせているのに、optionsの値がダメーというArgumentException が発生するので1つ1つ組み合わせたところ、ようやく理解。
 まずCompareOptionsは以下の定義。ビットの組み合わせで指定できるとなっている。

    [Flags]
    public enum CompareOptions
    {
        None = 0,
        IgnoreCase = 1,
        IgnoreNonSpace = 2,
        IgnoreSymbols = 4,
        IgnoreKanaType = 8,
        IgnoreWidth = 0x10,
        OrdinalIgnoreCase = 0x10000000,
        StringSort = 0x20000000,
        Ordinal = 0x40000000,
    }

 しかし、なんでも組み合わせられるということではなかった。
 まず、ベースとなる比較方法を、以下から選択する。

  • None
  • OrdinalIgnoreCase
  • Ordinal
  • StirngSort

 そのベースに対して、他のIgnoreXXX フラグを Orできるということらしい。
 私が例外を出していたのはOrdinalIgnoreCaseとStringSortを組み合わせていたからで、これはIgnoreCaseとStringSortを組み合わせれば事足りるということだった。