我想写一个Linq查询,以获取所有名字或姓氏以字符串列表中至少一个字符串开头的用户。这用于消息系统中收件人的自动完成。
这是我的第一次尝试:
var users = UserRepository.ALL()
foreach (var part in new [] { 'Ha', 'Ho', 'He' })
{
string part1 = part; // "Copy" since we're coding lazily
users = users.Where(x => x.LastName.StartsWith(part1) ||
x.FirstName.StartsWith(part1));
}
然而,这样做行不通,因为结果会变成:
users.Where(a || b).Where(c || d).Where(e || f)...
...而我想要的是:
users.Where(a || b || c || d || e || f || ...)
我该如何开始做这件事?