/// <summary> /// создает полностью независимую копию этой коллекции (ссылки на одинаковые значения разные) /// </summary> /// <returns></returns> public RecordCollection Clone() { RecordCollection Collection = new RecordCollection(); foreach (IRecord r in this) { Collection.Add(r.Clone()); } return(Collection); }
public RecordCollection GetRangeByUnit(string UnitName, object Value) { RecordCollection range = new RecordCollection(); foreach (IRecord r in this) { IField sdu; if (r.Fields.TryGetByName(UnitName, out sdu) && sdu.ValueEquals(Value)) { range.Add(r); } } return(range); }
public RecordCollection GetRangeByMethod(string methodName, object desiredReturnValue, params object[] args) { RecordCollection range = new RecordCollection(); foreach (IRecord r in this) { object result = null; try { result = r.GetType().InvokeMember(methodName, BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod, null, r, args); } catch { } if (desiredReturnValue == result) { range.Add(r); } } return(range); }