【发布时间】:2012-07-30 14:13:49
【问题描述】:
我正在创建一个搜索成员的函数,并且我想在我的 searchResults 变量中添加一个 Where。但是,在我这样做之前,它可能需要是一个 IQueryable。
这就是我想要完成的:
var searchResults = listMembers.DataSource = members.getAllMembers().OrderByDescending(x => x.createdDate).Select(x => new
{
x.ID,
x.memberNumber,
x.name,
x.email,
x.birthDate,
hasPayed = Helper.renderBoolImage(x.hasPayed, true),
isConfirmed = Helper.renderBoolImage(x.isConfirmed, true),
isExportedToExcel = Helper.renderBoolImage(x.isExportedToExcel, true)
});
if (!String.IsNullOrEmpty(search.name))
{
searchResults = searchResults.Where(x => x.name.ToLower().Equals(enc(search.name.ToLower())));
}
这一行无法编译,因为它无法解析 Where:
searchResults = searchResults.Where(x => x.name.ToLower().Equals(enc(search.name.ToLower())));
【问题讨论】:
-
对于不区分大小写的相等检查,请使用
a.Equals(b, StringComparison.InvariantCultureIgnoreCase)(或其他文化,如果合适)。如果必须自己转换字符串,则应使用ToUpperInvariant而不是ToLower。见Best Practices for Using Strings in the .NET Framework -
@phoog 感谢您的建议! :)