在运行时添加代码

时间:2014-06-04 09:37:48

标签: c# c#-4.0

我们说我有一个字符串列表。基于我想添加代码的字符串的值。

例如,我有三个字符串;名字,姓氏和电子邮件地址。它们可以为null或为空。让我们说姓氏和电子邮件是空的,然后我想要以下代码:

repository.Find(dto => dto.FirstName == firstName)
          .Select(x => CreateAccount(x)).ToList();

当只有电子邮件为空时,代码应如下所示:

accountRepository.Find(dto => dto.FirstName == firstName ||
                       dto.LastName == lastName)
                 .Select(x => CreateAccount(x)).ToList();

换句话说,当循环遍历字符串时,我想在字符串不为空时添加代码。这有可能吗?

1 个答案:

答案 0 :(得分:2)

您可以修改查找谓词:

accountRepository.Find(dto => 
    (string.IsNullOrEmpty(firstName) ? false : dto.FirstName == firstName) || 
    (string.IsNullOrEmpty(lastName) ? false : dto.LastName == lastName) ||
    (string.IsNullOrEmpty(email) ? false : dto.Email == email))
    .Select(x => CreateAccount(x)).ToList();