public static EM_StringCompare StringCompare(string Ps_Left, string Ps_Right) { EM_StringCompare Li_Result = EM_StringCompare.EQUAL; bool Lb_IsFinish = false; int Li_MinLength = Math.Min(Ps_Left.Length, Ps_Right.Length); for (int i = 0; i < Li_MinLength; i++) { if (Ps_Left[i] > Ps_Right[i]) { Li_Result = EM_StringCompare.BIG_LEFT; Lb_IsFinish = true; break; } else if (Ps_Left[i] < Ps_Right[i]) { Li_Result = EM_StringCompare.BIG_RIGHT; Lb_IsFinish = true; break; } } if (!Lb_IsFinish) { if (Ps_Left.Length > Ps_Right.Length) { Li_Result = EM_StringCompare.BIG_LEFT; } else if (Ps_Left.Length < Ps_Right.Length) { Li_Result = EM_StringCompare.BIG_RIGHT; } else { Li_Result = EM_StringCompare.EQUAL; } } return(Li_Result); }
public static EM_StringCompare VersionCompare(string Ps_Left, string Ps_Right) { EM_StringCompare Li_Result = EM_StringCompare.EQUAL; bool Lb_IsFinish = false; char Lc_Seperator = '.'; string[] Ls_Left = Ps_Left.Split(Lc_Seperator); string[] Ls_Right = Ps_Right.Split(Lc_Seperator); int Li_MinLength = Math.Min(Ls_Left.Length, Ls_Right.Length); for (int i = 0; i < Li_MinLength; i++) { if (IsDigit(Ls_Left[i]) && IsDigit(Ls_Right[i])) { int Li_Left = Convert.ToInt32(Ls_Left[i]); int Li_Right = Convert.ToInt32(Ls_Right[i]); if (Li_Left > Li_Right) { Li_Result = EM_StringCompare.BIG_LEFT; Lb_IsFinish = true; break; } else if (Li_Left < Li_Right) { Li_Result = EM_StringCompare.BIG_RIGHT; Lb_IsFinish = true; break; } else { continue; } } else { Li_Result = EM_StringCompare.ERROR; Lb_IsFinish = true; break; } } if (!Lb_IsFinish) { if (Ls_Left.Length > Ls_Right.Length) { Li_Result = EM_StringCompare.BIG_LEFT; } else if (Ls_Left.Length < Ls_Right.Length) { Li_Result = EM_StringCompare.BIG_RIGHT; } else { Li_Result = EM_StringCompare.EQUAL; } } return(Li_Result); }