public void Add(string val) { if (String.IsNullOrEmpty(val)) { HasNulls = true; val = "<NULL>"; } else if (DataType != typeof(string)) { if (DataType == typeof(int)) { CheckInt_(val); } if (DataType == typeof(double)) { CheckDbl_(val); } if (DataType == typeof(DateTime)) { CheckDT_(val); } } int curr; if (ValCount.TryGetValue(val, out curr)) { ValCount[val] = curr + 1; } else { ValCount[val] = 1; } }
private void ValidateValue(object obj) { // Validate Length again. But this time only for array elements on a string[]. if (ValLen != null) { if (type.IsArray) { if (type.GetElementType() == typeof(string)) { Array sa = (string[])obj; foreach (string s in sa) { string tmpString = s; if (ValLen.TrimFirst) { tmpString = tmpString.Trim(); } if (!ValLen.IsInRange(tmpString.Length)) { Throw.ValidationLength(this.Name, ValLen.Min, ValLen.Max); } } } } } Array array = null; if (type.IsArray) { array = (Array)obj; } // Validate Count. if (this.ValCount != null) { if (!ValCount.IsInRange(array.Length)) { Throw.ValidationArrayCount(this.Name, ValCount.Min, ValCount.Max); } } bool inValSet = false; string sObj = null; bool objIsString = false; if (obj is string) { sObj = (string)obj; objIsString = true; } // Validate Set (i.e. select list.) if (this.ValSet != null) { if (type.IsArray) { // Verify each element in the array is in the ValSet. foreach (object o in array) { bool isInSet = false; // Each o must be in the set. if (o is string) { string os = (string)o; foreach (string s in valSet) { if (this.valSetCaseInsensitive) { if (os.Equals(s, StringComparison.OrdinalIgnoreCase)) { isInSet = true; break; } } else { if (os.Equals(s, StringComparison.Ordinal)) { isInSet = true; break; } } } } else { //bool isInSet = false; foreach (object vo in ValSet) { IComparable ic = (IComparable)o; if (ic.CompareTo(vo) == 0) { isInSet = true; break; } } } if (!isInSet) { Throw.ValidationSet(this.Name, obj.ToString()); } } } else // Type is not an array, so verify the value is in the ValSet. { foreach (object o in ValSet) { if (objIsString) { if (valSetCaseInsensitive) { if (sObj.Equals((string)o, StringComparison.OrdinalIgnoreCase)) { inValSet = true; break; } } else { if (sObj.Equals((string)o, StringComparison.Ordinal)) { inValSet = true; break; } } } else { IComparable ic = (IComparable)obj; if (ic.CompareTo(o) == 0) { inValSet = true; break; } } } if (!inValSet) { Throw.ValidationSet(this.Name, obj.ToString()); } } } // Validate Range. if (this.valRange != null) { if (type.IsArray) { // Validate each element in the array is within range. foreach (object o in array) { if (!valRange.IsInRange(o)) { Throw.ValidationRange(this.Name, valRange.Min, valRange.Max); } } } else { if (!valRange.IsInRange(obj)) { Throw.ValidationRange(this.Name, valRange.Min, valRange.Max); } } } // Validate Pattern. if (this.valPattern != null) { Regex rx = new Regex(this.valPattern); if (type.IsArray) { string[] sa = (string[])obj; foreach (string s in sa) { if (!rx.IsMatch(s)) { Throw.ValidationPattern(this.Name, valPattern); } } } else { if (!rx.IsMatch((string)obj)) { Throw.ValidationPattern(this.Name, valPattern); } } } }
public IEnumerable <KeyValuePair <string, int> > MostCommon(int n) { return(ValCount.OrderByDescending(o => o.Value).Take(n)); }
public KeyValuePair <string, int> MostCommon() { return(ValCount.OrderByDescending(o => o.Value).First()); }