(C#) Можно ли использовать лямбда-выражение, хранимое в переменной типа string, и как это сделать?

Допустим, мы имеем класс "А", и массив, заполненный объектами этого класса:

    public class A
    {
        public int power;
        public int temp;
    }

    public A[] ArrayOfA = new A[99]; //Допустим, этот массив полон данных.

Теперь используя LINQ нам нужно отсортировать этот массив используя лямбда-выражение, вроде такого:

        public void Sort()
        {
            ArrayOfA = ArrayOfA.Where(x => x.power > 220 && x.temp < 100).ToArray();
        }

Вопрос заключается в следующем: Есть ли способ применять подобные лямбда-выражения, если они записаны в переменную-строку? (как указано ниже, например)

        string lambdaInString = "x => x.power > 220 && x.temp < 100";

        public void Sort()
        {
            ArrayOfA = ArrayOfA.Where(lambdaInString.ToLambda()).ToArray();
            //Очевидно, ToLambda() не существует изначально, это пример.
        }

Иначе говоря, как можно реализовать расширение "ToLambda()", которое будет преобразовывать строку в съедобное для C# лямбда-выражение?

Было задано много вопросов о том, где мне нужно применять подобную задачу, поэтому поясню:

В двух словах: мне нужно реализовать паттерн, в котором объект заранее определённого класса (В примере - класс "А") должен подходить под условия, которые записаны из вне (условно их записывает пользователь, не имеющий доступа к самому коду и я могу получить их в виде переменных типа string), а если объект класса попадает под это условие, то с ним проводится определённое действие (сортировка, как в примере, или что-то схожее). Для подобного рода условий мне отлично подходят лямбда-выражения, однако тот факт что они не пишутся в коде изначально и создало эту проблему.


Ответы (0 шт):