public bool[] Remove(RemoveValue[] valuesToRemove) { var groupedByUri = from x in valuesToRemove group x by GetUrl(x.Key); var valuesFromEndpoints = new bool[valuesToRemove.Length]; foreach (var values in groupedByUri) { var array = values.ToArray(); var valuesFromCurrentBatch = values.Key.Remove(array); for (int i = 0; i < array.Length; i++) { valuesFromEndpoints[Array.IndexOf(valuesToRemove, array[i])] = valuesFromCurrentBatch[i]; } } return valuesFromEndpoints; }
public bool[] Remove(RemoveValue[] valuesToRemove) { var values = new List<bool>(); hashTable.Batch(actions => { foreach (var value in valuesToRemove) { var removed = actions.Remove( value.Key, value.ParentVersions ?? new int[0]); values.Add(removed); } actions.Commit(); }); return values.ToArray(); }