我可以针对LINQ函数测试单个对象吗?

时间:2014-08-21 09:14:58

标签: c# linq

我有一个类似于下面的LINQ函数:

public static Func<Contact, bool> activeContactsFilter = c =>
    !c.suspended &&
    !c.expired &&
    (c.status_id == 1 || c.status_id == 7);

当我需要找出IEnumerable个联系人中哪些联系人处于“有效状态”时,此功能非常有用:

var activeContacts = allContacts.Where(activeContactsFilter);

但是如果我想检查一个特定联系人是否“有效”怎么办?如何在单个对象上使用相同的函数进行测试?

1 个答案:

答案 0 :(得分:6)

这非常简单 - 只需调用Func,就像它一样功能:

bool contactIsActive = activeContactsFilter(contactToCheck);

Func与LINQ无关,它们只是对LINQ有用。您可以将方法存储在正确类型的Func中,并且(如上所述)您可以像方法一样调用Func

有关Func的更多信息,请查看here