Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ-在最低和最高字符串之间查找_C#_Sql Server_Performance_Linq - Fatal编程技术网

C# LINQ-在最低和最高字符串之间查找

C# LINQ-在最低和最高字符串之间查找,c#,sql-server,performance,linq,C#,Sql Server,Performance,Linq,我想在较大的字符串中找到介于“0000”和“9999”之间的字符串号 从“qwt0000abc”到“qwt9999abc” MSSQL,其中id介于“qwt0000abc”和“qwt9999abc”之间 我将如何编写相同的LINQ查询 var selectedOrders = orders.Where(f => f.Id between "qwt0000abc" and "qwt9999abc"); 试试这个: var selectedOrders = arr.Where(x =>

我想在较大的字符串中找到介于“0000”和“9999”之间的字符串号 从“qwt0000abc”到“qwt9999abc”

MSSQL,其中id介于“qwt0000abc”和“qwt9999abc”之间

我将如何编写相同的LINQ查询

var selectedOrders = orders.Where(f => f.Id between "qwt0000abc" and "qwt9999abc");
试试这个:

var selectedOrders = arr.Where(x => Regex.IsMatch(x, ".*[0-9]{4}.*"));
或者,如果您需要确切的
qwt
前缀和
abc
后缀,则可以使用此选项

var selectedOrders = arr.Where(x => Regex.IsMatch(x, "qwt[0-9]{4}abc"));
*
这里是任意次数的文本(包括零),
[0-9]{4}
是介于0和9之间的数字,正好是4位数字。

试试这个:

var selectedOrders = arr.Where(x => Regex.IsMatch(x, ".*[0-9]{4}.*"));
或者,如果您需要确切的
qwt
前缀和
abc
后缀,则可以使用此选项

var selectedOrders = arr.Where(x => Regex.IsMatch(x, "qwt[0-9]{4}abc"));

*
这里是任意次数的任意文字(包括零),
[0-9]{4}
是介于0和9之间的数字,正好是4位。

假设您只需要具有相同前缀和后缀的行,那么只需在之间替换
,如下所示:

var selectedOrders = orders.Where(f => f.Id.CompareTo("qwt0000abc") >= 0 && f.Id.CompareTo("qwt9999abc") < 0).ToList() ;

假设您只需要具有相同前缀和后缀的行,那么只需在
之间替换
,如下所示:

var selectedOrders = orders.Where(f => f.Id.CompareTo("qwt0000abc") >= 0 && f.Id.CompareTo("qwt9999abc") < 0).ToList() ;

到目前为止你试过什么?您的代码示例代码无效到目前为止您尝试了什么?您的代码示例代码无效,如果这是EF,它将不起作用,需要转换为SQL。一个可能的替代方案,但不引入正则表达式,不如只使用linq并解释一下?如果这是EF,需要转换为SQL,它将不起作用。一个可能的替代方案,但不是引入正则表达式,用linq解释一下怎么样?