如何使用Linq2Sql搜索一系列字符?

时间:2017-10-10 18:43:26

标签: c# linq

我正在尝试合并此SQL查询的LINQ等价物。 数据库是SQL Server。

SELECT * FROM Party
WHERE Partyname LIKE '[a-m]%z'

此查询将返回partyname列可以以-m之间的任何字母开头且必须以字母z结尾的所有记录。

如果我想做LINQ等效,我该怎么做? 我试图以这种方式做到这一点,但显然还有更好的方法。

Parties.Where(p => (p.Partyname.StartsWith("a") || p.Partyname.StartsWith("b") ||
p.Partyname.StartsWith("c")) && p.Partyname.EndsWith("Z"))
.Select(x => new { x.Party_id, x.Partyname, x.Party_no, x.Reference, x.Input_dt })

注意:Linqpad复数表的名称。

1 个答案:

答案 0 :(得分:0)

也许你可以使用linq和常规

之间的组合
System.Text.RegularExpressions.Regex searchTerm =  
        new System.Text.RegularExpressions.Regex(@"Visual (Basic|C#|C\+\+|Studio)");  

var queryMatchingFiles =  
        from file in fileList  
        where file.Extension == ".htm"  
        let fileText = System.IO.File.ReadAllText(file.FullName)  
        let matches = searchTerm.Matches(fileText)  
        where matches.Count > 0  
        select new  
        {  
            name = file.FullName,  
            matchedValues = from System.Text.RegularExpressions.Match match in matches  
                            select match.Value  
        };  

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/how-to-combine-linq-queries-with-regular-expressions