private static bool filter_by_type_name (Type m, object filterCriteria) {
string s = (string)filterCriteria;
- if (s.EndsWith ("*"))
- return m.Name.StartsWith (s.Substring (0, s.Length - 1));
- else
- return m.Name == s;
+ if (s.Length > 0 && s [s.Length - 1] == '*')
+ return m.Name.StartsWith (s.Substring (0, s.Length - 1), StringComparison.Ordinal);
+
+ return m.Name == s;
}
private static bool filter_by_type_name_ignore_case (Type m, object filterCriteria) {
string s = (string)filterCriteria;
- if (s.EndsWith ("*"))
- return m.Name.ToLower ().StartsWith (s.Substring (0, s.Length - 1).ToLower ());
- else
- return String.Compare (m.Name, s, true) == 0;
+ if (s.Length > 0 && s [s.Length - 1] == '*')
+ return m.Name.StartsWith (s.Substring (0, s.Length - 1), StringComparison.OrdinalIgnoreCase);
+
+ return String.Equals (m.Name, s, StringComparison.OrdinalIgnoreCase);
}
[MethodImplAttribute (MethodImplOptions.InternalCall)]
string name = (string) filterCriteria;
if (name == null || name.Length == 0 )
return false; // because m.Name cannot be null or empty
-
- if (name [name.Length-1] == '*')
- return string.CompareOrdinal (name, 0, m.Name, 0, name.Length-1) == 0;
-
- return name.Equals (m.Name);
+
+ if (name [name.Length - 1] == '*')
+ return m.Name.StartsWith (name.Substring (0, name.Length - 1), StringComparison.Ordinal);
+
+ return m.Name == name;
}
static bool FilterNameIgnoreCase_impl (MemberInfo m, object filterCriteria)
if (name == null || name.Length == 0 )
return false; // because m.Name cannot be null or empty
- if (name [name.Length-1] == '*')
- return string.Compare (name, 0, m.Name, 0, name.Length-1, StringComparison.OrdinalIgnoreCase) == 0;
-
- return string.Equals (name, m.Name, StringComparison.OrdinalIgnoreCase);
+ if (name [name.Length - 1] == '*')
+ return m.Name.StartsWith (name.Substring (0, name.Length - 1), StringComparison.OrdinalIgnoreCase);
+
+ return string.Equals (m.Name, name, StringComparison.OrdinalIgnoreCase);
}
static bool FilterAttribute_impl (MemberInfo m, object filterCriteria)