いくつかの並べ替えのために主に、サイズ決められた数よりも多くを備えた文字列の比較正常数
/// <要約> ///は番号付きコンテンツは、デジタル数字の大きさに応じて比較する場合、2つの文字列を比較します。 /// </要約> /// <PARAM NAME = "X"> </ param>の /// <PARAM NAME = "Y"> </ param>の /// <戻り値> </戻り値> 公共の 静的な int型 StringCompareByNum(文字 X、列Y) { // 契約ヌルがあり、ヌル空の判定は、空の大等しくない IF(X == NULL || Y ==のNULL ) { IF(X == NULL && } そう であれば(!X = NULL ) { 返す 1 。 } 他 { リターン - 1 。 } } ストリング STRA = Convert.ToString(X)。 ストリング STRB = Convert.ToString(Y)。 CHAR [] ARR1 = strA.ToCharArray()。 CHAR [] ARR2 = strB.ToCharArray()。 int型 I = 0、J = 0 ; 同時に(I <arr1.Length && J < arr2.Length) { 場合(チャー .IsDigit(ARR1 [I])&& チャー.IsDigit(ARR2 [J])) { ストリング S1 = ""、S2 = "" ; 一方、(I <arr1.Length && チャー.IsDigit(ARR1 [I])) { S1 + = ARR1 [I]。 I ++ ; } 一方、(J <arr2.Length && チャー.IsDigit(ARR2 [J])) { S2 ARR2 [J]。 J ++ ; } 場合(二重 .Parse(S1)が> 二重.Parse(S2)) { 返す 1 。 } であれば(二重 .Parse(S1)< 二重.Parse(S2)) { リターン - 1 。 } } 他 { 場合(ARR1 [I]> ARR2 [J]) { リターン 1; } もし(ARR1 [I] < ARR2 [J]) { リターン - 1 。 } 私は ++します; J ++ ; } } もし(arr1.Length == arr2.Length) { 戻り 0 ; } 他 { 返す arr1.Length> arr2.Lengthを?1: - 1 。 } }