我有以下要在 IQueryable 数据源中查找的值。
用户可以在我的 Silverlight 应用程序的文本框中键入值以过滤结果,然后这些输入将被过滤并发送到我的域服务。
“*”是用户可以输入的内容来进行通配符搜索,例如,返回“TYPE”以“P32”开头的所有值。
List<string> params = new List<string>() { "P32*", "P4552", "P2311" };
然后我将此列表传递给我的域服务代码中的一个函数:
IQueryable<MyClass> temp = this.ObjectContext.MyClass.AsQueryable();
temp = temp.Where(c => params.Contains(c.TYPE));
这是我在实现通配符搜索之前所做的。最干净的方法是什么?我在想我必须在我的参数列表中循环并尝试在每个字符串上包含(在更多的字符串操作之后),但这种方式感觉很不干净
foreach (string x in params)
{
//look for * wildcard... do some other stuff
temp = temp.Where(c=>c.TYPE.Contains(x));
}