Выборка данных по пользовательскому алгоритму.

программирование C# скрипты

[Приложение на C#]

Имеются данные вида:

class Foo
{
int Value = 0;
}
List<Foo> data;

В общем случае Foo содержет множество полей. Необходимо выбрать из data ряд объектов по пользовательскому условию. Причем условию это весьма произвольно: значение некоторо поля = константе или меньше\больше константы, в заданном диапазоне и т.д. Причем необходимо дать пользователю возможность задать массу условий с произвольной логикой (например: значение поля А=1 и значение поля Б=2 или значение Б=истина).

Посоветуйте общую стратегию решения задачи. На данный момет рассматривается вариант использовать скриптовый язык (в частности, Lua или JS), даюы пользователь писал собственные маленькие скрипты.

Примечание:
Передать метод плагина в качестве аргумента для выбоорки можно, но такой вариант с плагинами не прокатывает - ибо кто их будет писать? у юзера 20 идей, и для каждой будет по dll-ке, которую он фиг знает откуда возьмет... не выдавать же каждому юзеру компилятор или сразу IDE.
Вариант заставить пользователя учить скриптовый язык пока что выглядит привлекательнее.

Примечание:
>много вы знаете бухгалтеров, к-е пишут скрипты под 1С?
Это уже вопрос не технический, а политический. Кто кого заставить что учить, и чью работу делать :-)
Ответы:
когда-то давно нечто схожее делал на Си. там "пользовательская выборка" представляла собой некую функцию, которую потом передавал в аргументах другой ф-ции, которая применяла переданную ей к определенным данным (задача была связана с изучением поведения перцептронов с разными пороговыми функциями). возможно, здесь вам тоже нечто схожее нужно реализовывать.
потом, плюгины, например, к winamp'у работают примерно по схожему принципу - есть некие данные, и обработчики к ним (в виде dll плюгинов), организуется некий интерфейс передачи данных этим обработчикам
ваш вариант со скриптовым языком тоже неплох. по сути так реализована та же 1С - есть скрипты, которые обрабатывают некие данные, есть ядро, которое применяет эти скрипты к данным. в таком случае, вы пишите свой интерпретатор (или уже используете готовые), а ваше приложение становится "открытым" и "расширяемым" с помощью читабельных скриптов
на Дополнение #1:
ну это да. вот только со скриптами тоже будут человеческие накладки - много вы знаете бухгалтеров, к-е пишут скрипты под 1С?
т.е. все будет зависеть от масштаба и уровня пользователя.
Чем не устроили фильтры условий а-ля эксель?
[Имя поля] [Вид условия] [Значение(я)]
На мой взгляд давать возможность пользователям писать что-то свое (скрипты например) - это явный источник проблем.


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.