【发布时间】:2010-10-05 22:22:22
【问题描述】:
我正在尝试编写一个 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 || ...)
我该怎么做呢?
【问题讨论】:
标签: c# linq linq-to-sql autocomplete aggregate