CompareOptions 列挙体とは? わかりやすく解説

CompareOptions 列挙体

CompareInfo と共に使用する文字列比較オプション定義します

この列挙体には、メンバ値のビットごとの組み合わせ可能にする FlagsAttribute 属性含まれています。

名前空間: System.Globalization
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
<FlagsAttribute> _
Public Enumeration CompareOptions
Dim instance As CompareOptions
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
[FlagsAttribute] 
public enum CompareOptions
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
[FlagsAttribute] 
public enum class CompareOptions
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute FlagsAttribute() */ 
public enum CompareOptions
SerializableAttribute 
ComVisibleAttribute(true) 
FlagsAttribute 
public enum CompareOptions
メンバメンバ
 メンバ説明
.NET Compact Framework によるサポートIgnoreCase文字列比較大文字と小文字区別無視することを示します。 
.NET Compact Framework によるサポートIgnoreKanaType文字列比較カナ型を無視することを示しますカナ型とは日本語発音を表すひらがなカタカナ文字指しますひらがなは、本来の日本語表現単語使用しカタカナは "コンピュータ" または "インターネット" などの外来語使用します発音は、ひらがなカタカナどちらでも表現できます。この値が選択されている場合、ある発音を示すひらがなは、同じ発音を示すカタカナ同一であると見なされます。 
.NET Compact Framework によるサポートIgnoreNonSpace文字列比較で、発音区別符など、非スペーシング組み合わせ文字無視するように指定しますUnicode 標準は、基本文字組み合わせて生成される新しい文字組み合わせ文字として定義してます。スペーシング組み合わせ文字は、表示されるときに文字間隔用の領域確保しません。非スペーシング組み合わせ文字詳細については、http://www.unicode.org の「The Unicode Standard」を参照してください。 
.NET Compact Framework によるサポートIgnoreSymbols文字列比較において、空白文字句読点通貨記号パーセント記号算術記号アンパサンドなどの記号無視することを示します。 
.NET Compact Framework によるサポートIgnoreWidth文字列比較において、半角と全角区別無視することを示します。たとえば、日本語カタカナ文字は、全角または半角記述できます。この値を選択した場合全角記述されカタカナ文字は、半角記述されカタカナ文字同一であると見なされます。 
.NET Compact Framework によるサポートNone文字列比較既定オプション設定示します。 
.NET Compact Framework によるサポートOrdinal文字Unicode 値を使用して文字列比較することを示します。この比較処理速度速いですが、カルチャに応じた処理は行いません。xxxxyyyy よりも小さ場合、"U+xxxx" で始まる文字列は "U+yyyy" で始まる文字列よりも前になります。このフラグを他のフラグ組み合わせることはできません。このフラグは、単独使用してください。 
.NET Compact Framework によるサポートOrdinalIgnoreCase文字列比較大文字と小文字違い無視するように指定し通常の比較実行します。これは、インバリアント カルチャを使用して文字列大文字変換した後、その結果に対して通常の比較実行する操作と同じです。 
.NET Compact Framework によるサポートStringSort文字列比較時にハイフンアポストロフィ、およびその他の英数字以外の記号英数字よりも前になる文字列並べ替えアルゴリズム使用することを示します。 
解説解説

これらのオプションは、大文字と小文字区別するかどうか、または文字の型を無視するかどうか示します

.NET Framework は、単語での並べ替え文字列での並べ替え序数での並べ替え異な3 種類の並べ替え方法使用します単語での並べ替えでは、カルチャを考慮した文字列比較実行されます。英数字以外の特定の文字特殊な重み付けが行われる場合あります。たとえば、ハイフン ("-") に非常に低い重み付けが行われ、並べ替えられた一覧に "coop" と "co-op" が並んで現れる場合あります文字列での並べ替えは、単語での並べ替え似ていますが、特殊な場合存在しません。このため英数字以外のすべての記号がどの英数字よりも前に来ます序数での並べ替えでは、文字列各要素Unicode 値を元に文字列比較されます。

StringSort 値は、CompareInfo.Compare と CompareInfo.GetSortKey だけで使用できますStringSort 値を CompareInfo.IsPrefix、CompareInfo.IsSuffix、CompareInfo.IndexOf、または CompareInfo.LastIndexOf で使用すると、ArgumentException がスローさます。

使用例使用例

StringSort指定した並べ替えStringSort なしでの並べ替えどのように異なるかを次のコード例示します

Imports System
Imports System.Collections
Imports System.Globalization

Public Class SamplesCompareOptions

   Private Class MyStringComparer
      Implements IComparer

      Private myComp As CompareInfo
      Private myOptions As CompareOptions =
 CompareOptions.None
      
      ' Constructs a comparer using the specified CompareOptions.
      Public Sub New(cmpi
 As CompareInfo, options As CompareOptions)
         myComp = cmpi
         Me.myOptions = options
      End Sub 'New
      
      ' Compares strings with the CompareOptions specified in the constructor.
      Public Function Compare(a As
 [Object], b As [Object]) As Integer
 Implements IComparer.Compare
         If a = b Then
            Return 0
         End If
         If a Is Nothing
 Then
            Return - 1
         End If
         If b Is Nothing
 Then
            Return 1
         End If 

         Dim sa As [String] = a
         Dim sb As [String] = b
         If Not (sa Is Nothing)
 And Not (sb Is Nothing)
 Then
            Return myComp.Compare(sa, sb, myOptions)
         End If
         Throw New ArgumentException("a
 and b should be strings.")

      End Function 'Compare 

   End Class 'MyStringComparer


   Public Shared Sub Main()
      
      ' Creates and initializes an array of strings to sort.
      Dim myArr() As [String] = {"cant",
 "bill's", "coop", "cannot", "billet",
 "can't", "con", "bills", "co-op"}
      Console.WriteLine()
      Console.WriteLine("Initially,")
      Dim myStr As [String]
      For Each myStr In
  myArr
         Console.WriteLine(myStr)
      Next myStr 

      ' Creates and initializes a Comparer to use.
      'CultureInfo myCI = new CultureInfo( "en-US", false
 );
      Dim myComp As New
 MyStringComparer(CompareInfo.GetCompareInfo("en-US"),
 CompareOptions.None)
      
      ' Sorts the array without StringSort.
      Array.Sort(myArr, myComp)
      Console.WriteLine()
      Console.WriteLine("After sorting without CompareOptions.StringSort:")
      For Each myStr In
  myArr
         Console.WriteLine(myStr)
      Next myStr 

      ' Sorts the array with StringSort.
      myComp = New MyStringComparer(CompareInfo.GetCompareInfo("en-US"),
 CompareOptions.StringSort)
      Array.Sort(myArr, myComp)
      Console.WriteLine()
      Console.WriteLine("After sorting with CompareOptions.StringSort:")
      For Each myStr In
  myArr
         Console.WriteLine(myStr)
      Next myStr 

   End Sub 'Main

End Class 'SamplesCompareOptions
 


'This code produces the following output.
'
'Initially,
'cant
'bill's
'coop
'cannot
'billet
'can't
'con
'bills
'co-op
'
'After sorting without CompareOptions.StringSort:
'billet
'bills
'bill's
'cannot
'cant
'can't
'con
'coop
'co-op
'
'After sorting with CompareOptions.StringSort:
'bill's
'billet
'bills
'can't
'cannot
'cant
'co-op
'con
'coop

using System;
using System.Collections;
using System.Globalization;


public class SamplesCompareOptions  {

   private class MyStringComparer: IComparer
 {
      private CompareInfo myComp;   
      private CompareOptions myOptions = CompareOptions.None;

      // Constructs a comparer using the specified CompareOptions.
      public MyStringComparer( CompareInfo cmpi, CompareOptions
 options )  {
         myComp = cmpi;
         this.myOptions = options;
      }

      // Compares strings with the CompareOptions specified in the constructor.
      public int Compare(Object a, Object b)
 {
         if (a == b) return 0;
         if (a == null) return
 -1;
         if (b == null) return
 1;

         String sa = a as String;
         String sb = b as String;
         if (sa != null && sb != null)
            return myComp.Compare(sa, sb, myOptions);
         throw new ArgumentException("a and b should be strings.");

      }
   }
   
   public static void Main()
  {

      // Creates and initializes an array of strings to sort.
      String[] myArr = new String[9] { "cant", "bill's",
 "coop", "cannot", "billet", "can't", "con",
 "bills", "co-op" };
      Console.WriteLine( "\nInitially," );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );

      // Creates and initializes a Comparer to use.
      //CultureInfo myCI = new CultureInfo( "en-US", false
 );
      MyStringComparer myComp = new MyStringComparer(CompareInfo.GetCompareInfo("en-US"),
 CompareOptions.None);

      // Sorts the array without StringSort.
      Array.Sort( myArr, myComp );
      Console.WriteLine( "\nAfter sorting without CompareOptions.StringSort:"
 );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );

      // Sorts the array with StringSort.
      myComp = new MyStringComparer(CompareInfo.GetCompareInfo("en-US"),
 CompareOptions.StringSort);
      Array.Sort( myArr, myComp );
      Console.WriteLine( "\nAfter sorting with CompareOptions.StringSort:"
 );
      foreach ( String myStr in myArr )
         Console.WriteLine( myStr );

   }

}

/*
This code produces the following output.

Initially,
cant
bill's
coop
cannot
billet
can't
con
bills
co-op

After sorting without CompareOptions.StringSort:
billet
bills
bill's
cannot
cant
can't
con
coop
co-op

After sorting with CompareOptions.StringSort:
bill's
billet
bills
can't
cannot
cant
co-op
con
coop

*/
using namespace System;
using namespace System::Collections;
using namespace System::Globalization;

// __gc public class SamplesCompareOptions {
ref class MyStringComparer: public IComparer
{
public:

   // Constructs a comparer using the specified CompareOptions.
   CompareInfo^ myComp;
   CompareOptions myOptions;
   MyStringComparer( CompareInfo^ cmpi, CompareOptions options )
      : myComp( cmpi ), myOptions( options )
   {}

   // Compares strings with the CompareOptions specified in the constructor.
   virtual int Compare( Object^ a, Object^ b )
   {
      if ( a == b )
            return 0;

      if ( a == nullptr )
            return  -1;

      if ( b == nullptr )
            return 1;

      String^ sa = dynamic_cast<String^>(a);
      String^ sb = dynamic_cast<String^>(b);
      if ( sa != nullptr && sb != nullptr )
            return myComp->Compare( sa, sb, myOptions );

      throw gcnew ArgumentException( "a and b should be strings." );
   }
};

int main()
{
   
   // Creates and initializes an array of strings to sort.
   array<String^>^myArr = {"cant","bill's","coop"
,"cannot","billet","can't","con","bills"
,"co-op"};
   Console::WriteLine( "\nInitially, " );
   IEnumerator^ myEnum = myArr->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      String^ myStr = safe_cast<String^>(myEnum->Current);
      Console::WriteLine( myStr );
   }

   
   // Creates and initializes a Comparer to use.
   //CultureInfo* myCI = new CultureInfo(S"en-US", false);
   MyStringComparer^ myComp = gcnew MyStringComparer( CompareInfo::GetCompareInfo(
 "en-US" ),CompareOptions::None );
   
   // Sorts the array without StringSort.
   Array::Sort( myArr, myComp );
   Console::WriteLine( "\nAfter sorting without CompareOptions::StringSort:"
 );
   myEnum = myArr->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      String^ myStr = safe_cast<String^>(myEnum->Current);
      Console::WriteLine( myStr );
   }

   
   // Sorts the array with StringSort.
   myComp = gcnew MyStringComparer( CompareInfo::GetCompareInfo( "en-US"
 ),CompareOptions::StringSort );
   Array::Sort( myArr, myComp );
   Console::WriteLine( "\nAfter sorting with CompareOptions::StringSort:"
 );
   myEnum = myArr->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      String^ myStr = safe_cast<String^>(myEnum->Current);
      Console::WriteLine( myStr );
   }
}

/*
This code produces the following output.

Initially,
cant
bill's
coop
cannot
billet
can't
con
bills
co-op

After sorting without CompareOptions::StringSort:
billet
bills
bill's
cannot
cant
can't
con
coop
co-op

After sorting with CompareOptions::StringSort:
bill's
billet
bills
can't
cannot
cant
co-op
con
coop
*/
import System.* ;
import System.Collections.* ;
import System.Globalization.* ;

public class SamplesCompareOptions
{
    private class MyStringComparer implements
 IComparer
    {
        private CompareInfo myComp;
        private CompareOptions myOptions = CompareOptions.None;

        // Constructs a comparer using the specified CompareOptions.
        public MyStringComparer(CompareInfo cmpi, CompareOptions
 options)
        {
            myComp = cmpi;
            this.myOptions = options;
        } //MyStringComparer

        // Compares strings with the CompareOptions specified in the
 
        // constructor.
        public int Compare(Object a, Object
 b)
        {
            if (a == b) {
                return 0;
            }
            if (a == null) {
                return -1;
            }
            if (b == null) {
                return 1;
            }

            String sa =(String) a;
            String sb = (String)b;
            if (sa  != null && sb 
 != null) {
                return myComp.Compare(sa, sb, myOptions);
            }
            throw new ArgumentException("a and b should be
 strings.");
        } //Compare 
    } //MyStringComparer
   
    public static void main(String[]
 args)
    {
        // Creates and initializes an array of strings to sort.
        String myArr[] = new String[]{"cant", "bill's",
 "coop", "cannot", 
            "billet", "can't", "con", "bills",
 "co-op"};
        Console.WriteLine("\nInitially,");
            SamplesCompareOptions mySamplesCompareOptions = 
                new SamplesCompareOptions();    
        
        for(int i=0 ; i < myArr.length ;i++)
 {
            String myStr = myArr[i];
            Console.WriteLine(myStr);
        }
        // Creates and initializes a Comparer to use.
        //CultureInfo myCI = new CultureInfo( "en-US", false
 );
        MyStringComparer myComp = mySamplesCompareOptions.new
 MyStringComparer(
            CompareInfo.GetCompareInfo("en-US"), CompareOptions.None);
            
        // Sorts the array without StringSort.
        Array.Sort(myArr, myComp);
        Console.WriteLine("\nAfter sorting without CompareOptions.StringSort:");
        
        for(int i=0; i< myArr.length ;i++)
 {
            String myStr = myArr[i];
            Console.WriteLine(myStr);
        }
            
        // Sorts the array with StringSort.
        myComp = mySamplesCompareOptions.new MyStringComparer(
            CompareInfo.GetCompareInfo("en-US"), CompareOptions.StringSort);
        Array.Sort(myArr, myComp);
        Console.WriteLine("\nAfter sorting with CompareOptions.StringSort:");
        
        for(int i=0; i< myArr.length ;i++)
 {
            String myStr = myArr[i];
            Console.WriteLine(myStr);
        }
    } //main 
} //SamplesCompareOptions

/*
This code produces the following output.

Initially,
cant
bill's
coop
cannot
billet
can't
con
bills
co-op

After sorting without CompareOptions.StringSort:
billet
bills
bill's
cannot
cant
can't
con
coop
co-op

After sorting with CompareOptions.StringSort:
bill's
billet
bills
can't
cannot
cant
co-op
con
coop
*/
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

CompareOptions 列挙体のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



CompareOptions 列挙体のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS