private <T> T reduceToContext(final Func1<Bundle, T> getter, final T initial, final Func2<T, T, T> reducer) {
        T result = initial;
        for (T v : getAllFromContext(getter).values()) {
            result = reducer.call(result, v);
        }
        return result;
    }
Build a search result from a collection of caches.

@param caches the non-null collection of caches to include
main/src/main/java/cgeo/geocaching/SearchResult.java