这在 LINQ 中很棘手吗?正则表达式与 Linq 组合

本文关键字:正则表达式 Linq 组合 LINQ 这在 | 更新日期: 2023-09-27 18:35:31

我有一个模型,其属性字符串可以是"00000044"格式,所以假设我正在查询一个列表

public class Foo
{
     private string MemberNo { get; set; }
}

从实体框架填充,

我们的套装包括以下内容:

"00000044" include this
"44000000" include this
"20440000" exclude this

如何编写一个查询,以排除搜索条件"44"左侧带有非零数字的任何内容

是否可以将正则表达式与 linq 结合使用,或者是否有更智能的方法?

这在 LINQ 中很棘手吗?正则表达式与 Linq 组合

var filteredFoos = myFoos
    .Where(foo => foo.MemberNo.TrimStart('0').StartsWith("44"));

现在,如果您想恢复所有Foos,但是如果您想使用实体框架,请查看此答案以正确翻译它。

var result = fooList.Where(foo => Regex.IsMatch(foo.MemberNo, @"^0*44'd*$"));

您还需要将 MemberNo 属性设为公开。

编辑

或者,一个无正则表达式的版本:

var result = fooList.Where(foo => foo.MemberNo.TrimStart('0').StartsWith("44"));