Статья: Использование интегрированных в язык запросов (linq) при обработке массива данных в microsoft visual basic 2008

Традиционный подход

Dim sum As Integer = 0

For i As Integer = 0 To UBound(Vector)

sum += Vector(i)

Next

LINQ подход

Dim Result As Integer = Aggregate Element In Vector _

Into Sum()

Нахождение элемента исходного массива с максимальным значением.

Традиционный подход

Dim max As Integer = Vector(0)

For i As Integer = 1 To UBound(Vector)

If Vector(i) > max Then max = Vector(i)

Next

LINQ подход

Dim Result As Integer = Aggregate Element In Vector _

Into Max()

Результаты сравнения

Алгоритм LINQ, мс Традиционный, мс
1 Выборка положительных элементов 1205 1324
2 Сортировка по возрастанию 62 6801
3 Возведение в квадрат 13791 14820
4 Отбор элементов без повторов 4330 209181
5 Количество отрицательных элементов 2137 592
6 Среднее значение 1139 201
7 Суммирование элементов 920 172
8 Поиск максимума 983 187

Выводы

Проведено сравнение традиционной технологии обработки массива данных с технологией LINQ.

Показано, что использование языка запросов LINQ значительно сокращает время разработки и объем написанного кода при проектировании алгоритмов для решения типичных задач обработки массива данных.

На некоторых типах рассмотренных задач (выборка положительных элементов, сортировка, возведение в квадрат, отбор элементов без повторов) производительность алгоритмов с LINQ технологией выше, чем у традиционных итерационных алгоритмов. На остальных рассмотренных типах задач (количество отрицательных элементов, вычисление среднего значения, суммирование элементов, поиск максимума) производительность алгоритмов с LINQ технологией хоть и ниже производительности итерационных алгоритмов, но является приемлемой для обработки достаточно больших объемов данных без существенных потерь скорости.

Рассматриваемая в данной статье технология LINQ успешно применялась автором для написания алгоритма обработки массива результатов тестирования более чем 6200 школьников 5 классов всех школ республики Северная Осетия-Алания в конце 2007 г.

Литература

Вагнер В. Исследуем LINQ // Алгоритм 2006. № 4.

Чистяков В. Коллекции в .NET Framework Class Library // RSDN Magazine 2003. № 6.

Paolo Pialorsi, Marco Russo. Introducing Microsoft LINQ. Microsoft Press. 2007.


* Научный руководитель к.т.н., доц. Мамонтов Д. В.

К-во Просмотров: 137
Бесплатно скачать Статья: Использование интегрированных в язык запросов (linq) при обработке массива данных в microsoft visual basic 2008