从类型参数传递的类型参数的表达式?

时间:2016-12-06 16:06:12

标签: c# reflection

如何在以下方法中概括表达式y.Aaa == x.Aaa

void Delete<T>(List<T> db, List<T> n, Func<bool> cond) // typed cond
{
    var deleted = db
        .Where(x => !n.Any(y => y.Aaa == x.Aaa)) // Each T may have different property name? 
        .ToList();
    //....
}

如果无法完成。 Delete(db, n, db => db.Aaa, n => n.Aaa)怎么样?或者我必须做Delete(db, n, "Aaa")

1 个答案:

答案 0 :(得分:1)

我想我会遵循你的意思。你想要一个通用的删除方法,比如......

Delete(db, n, (x, y) => y.Aaa == x.Aaa)

......我们称之为......

cond

这基本上使Any()成为一个&#34;相等比较器&#34;我们可以在{{1}}。

中使用它