像WHERE UserName LIKE 'fr_d'
这样的SQL子句的linq等价物是什么?
我正在使用内存中的数据集而不是SQL数据库,因此我认为我不能使用类似where SqlMethods.Like(p.UserName, "Fr_d")
(不是我安装的VS2008承认SqlMethods甚至是System.Data.Linq.SqlClient 目前存在,但那是一个完全不同的问题!)
答案 0 :(得分:7)
像这样:
table.Where(row => row.StringColumn.StartsWith("prefix"))
(您可能还想致电Contains
或EndsWith
)
编辑:在您的情况下,您需要
table.Where(p => p.UserName.StartsWith("Fr") && p.UserName.EndsWith("d") && p.UserName.Length == 4)
或者,您也可以在Where
子句中加入正则表达式
如果这样做,请确保在RegEx
调用之外创建Where
对象,以便不会为每行解析它。
答案 1 :(得分:0)
我相信这是你真正想要的。它将允许Fr {任何一个角色} d:
table.Where(p => p.UserName.StartsWith("Fr") && p.UserName.EndsWith("d") && p.UserName.Length == 4 )
不幸的是我找不到任何类似于SQL的类似LINQ to Dataset的子句...
更新:在此处找到类似的帖子:LINQ vs. DataTable.Select - How can I get the same results?
他们建议使用我不熟悉的i4o,但可能值得调查(该问题的提问者接受了i4o作为答案)。