Как я динамично создаю Выражение <Func <MyClass, bool>> предикат?

Укажите правильный путь к вашему файлу и выходному файлу. Код ниже сделает все остальное.

import pandas as pd
import numpy as np
df=pd.read_csv('your_file.txt',delimiter=' ',header=None,parse_dates=[0,1])
df['date_diffrence']=((df[1]-df[0])/np.timedelta64(1,'D')).astype(int)
df.to_csv('your_file_result.txt',header=None,sep=' ',index=False)
29
задан abatishchev 8 December 2016 в 00:23
поделиться

3 ответа

Оригинал

Примерно так:

    var param = Expression.Parameter(typeof(string), "p");
    var len = Expression.PropertyOrField(param, "Length");
    var body = Expression.Equal(
        len, Expression.Constant(5));

    var lambda = Expression.Lambda<Func<string, bool>>(
        body, param);

Обновлено

re (p.Length == 5) && (p.SomeOtherProperty == "привет") :

var param = Expression.Parameter(typeof(SomeType), "p");
var body = Expression.AndAlso(
       Expression.Equal(
            Expression.PropertyOrField(param, "Length"),
            Expression.Constant(5)
       ),
       Expression.Equal(
            Expression.PropertyOrField(param, "SomeOtherProperty"),
            Expression.Constant("hello")
       ));
var lambda = Expression.Lambda<Func<SomeType, bool>>(body, param);
52
ответ дан 28 November 2019 в 01:01
поделиться

Чтобы объединить несколько предикатов с оператором && , вы объединяете их вместе по два за раз.

Итак, если у вас есть список объектов Expression с именем предикаты , сделайте следующее:

Expression combined = predicates.Aggregate((l, r) => Expression.AndAlso(l, r));
9
ответ дан 28 November 2019 в 01:01
поделиться

Используйте конструктор предикатов.

http://www.albahari.com/nutshell/predicatebuilder.aspx

Это довольно просто!

14
ответ дан 28 November 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: