none
Оптимизация запроса RRS feed

  • Вопрос

  • Добрый вечер. Программа осуществляет поиск для элементов одной коллекции (strColl) в коллекции объектов(objColl), содержащих элементы со свойствами Value(стринг) и Count(инт). Для каждого элемента необходимо выбрать 10 элементов начинающихся с str[i] и наибольшим Count и отсортировать полученную коллекцию сначала по Count, а если есть элементы с совпадающим Count - то по Value. 
    Сделал такой запрос в теле прохода по циклу для str - 
    (objColl.AsParallel().Where(r => r.Value.StartsWith(str[i], StringComparison.Ordinal)).OrderByDescending(r => r.Count).ThenBy(r => r.Value).Take(10)).ToList()
    

    Требуют увеличения производительности. Я возился с MergeOption, писал различные алгоритмы - толку нет. Подскажите что делать?
    12 июня 2014 г. 4:57

Ответы

  • я наверное забыл дописать Take(10). Вы этот запрос включали?

    strCol.Select(w => new { w, objColl.Where(r => r.Value.StartsWith(w, StringComparison.Ordinal).OrderByDescending(r=> r.Count).ThenBy(r => r.Value).Take(10)}).ToList();

    Я не тестировал, но фишка в том, чтобы сделать один запрос.


    Mak Arti

    13 июня 2014 г. 5:44

Все ответы