是否可以在C#表达式中使用占位符?我有一个表达式,用于过滤数据网格中的记录,如下所示:

    view.Filter = item =>
        {
            OrdsRlsd vitem = item as OrdsRlsd;

            if (vitem.OrderNo >= Convert.ToInt32(TxtCond1.Text) && vitem.OrderNo <= Convert.ToInt32(TxtCond2.Text))
            {
                return true;
            }
            return false;
        };


在此表达式中,比较运算符以及TxtCond1和TxtCond2值是动态的。我们可以为此使用占位符吗?

最佳答案

是的,您可以将其作为Func<string>参数传递。所以说你的函数定义是这样的

public void Filter(Func<string> string1, Func<string> string2)
{
var result = item =>
        {
            OrdsRlsd vitem = item as OrdsRlsd;

            if (vitem.OrderNo >= Convert.ToInt32(string1.Invoke()) && vitem.OrderNo <= Convert.ToInt32(string2.Invoke()))
            {
                return true;
            }
            return false;
        };
}

09-11 23:57