C# 与SQL LIKE子句等价的linq到数据集

C# 与SQL LIKE子句等价的linq到数据集,c#,linq,C#,Linq,像这样的SQL子句的linq等价物是什么,其中用户名像'fr\u d' 我使用的是内存中的数据集,而不是SQL数据库,因此我认为我不能使用类似where-SqlMethods.like(p.UserName,“Fr\u d”) (我安装的VS2008并不承认SqlMethods甚至System.Data.Linq.SqlClient 现在存在,但那是一个完全不同的问题!)像这样: table.Where(row => row.StringColumn.StartsWith("prefix"

这样的SQL子句的linq等价物是什么,其中用户名像'fr\u d'

我使用的是内存中的数据集,而不是SQL数据库,因此我认为我不能使用类似
where-SqlMethods.like(p.UserName,“Fr\u d”)

(我安装的VS2008并不承认SqlMethods甚至System.Data.Linq.SqlClient 现在存在,但那是一个完全不同的问题!)

像这样:

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
子句中放入正则表达式。

如果这样做,请确保在
Where
调用之外创建
RegEx
对象,这样就不会对每一行进行解析。

我相信这是您真正想要的。它将允许Fr{任何一个字符}d:

不幸的是,我找不到任何类似于LINQ to Dataset的SQL like子句的东西

更新:在此处找到类似的帖子:


他们建议使用我不熟悉的方法,但可能值得研究(该问题的提问者接受i4o作为答案).

这取决于名为fr\u d的列的内容。你是想把
像'fr\u d'
而不是
像fr\u d
?注意,他在他的
中使用了一个特殊字符(假设他想用'fr\u d'而不是fr\u d)。第二个示例将选择用户名为“fraaaad”的记录这不是相应的SQL查询会做的。谢谢-我认为正则表达式将是一种方式,因为我需要检查任何位置的单字符差异。
table.Where(p => p.UserName.StartsWith("Fr") && p.UserName.EndsWith("d") && p.UserName.Length == 4 )