实例介绍
【实例简介】
ExpressionBuilder是一个功能强大的库,旨在提供一个简单的方法来创建Lambda表达式,以便过滤列表和数据库查询。通过提供一个易于使用的流畅接口,该库使得创建、存储和传输这些过滤器变得简单易行。这对于将WebApi请求参数转换为表达式、创建能够保存和重新运行这些过滤器的高级搜索屏幕等方面特别有帮助。
特性包括:通过属性名引用属性、内置空检查、XML序列化支持、复杂表达式支持、自定义操作创建等。此外,还增加了对.NetStandard 2.0的支持,并改进了嵌套属性的支持。
如果您正在寻找一个强大且易于使用的库来创建Lambda表达式进行数据过滤,ExpressionBuilder无疑是一个不错的选择。
【实例截图】
【核心代码】
文件清单
└── ExpressionBuilder-43455e89c500c6c8fe3ac1a7e50ca5e3eca0318e
├── _config.yml
├── docs
│ ├── BuildLinqExpressionsDynacallyFormUI.png
│ ├── Operations.pt-BR.resx.PNG
│ ├── Operations.resx.PNG
│ ├── Person.pt-BR.resx.PNG
│ └── Person.resx.PNG
├── dotCover.bat
├── dotCover.xml
├── ExpressionBuilder
│ ├── Builders
│ │ └── FilterBuilder.cs
│ ├── Common
│ │ ├── CommonExtensionMethods.cs
│ │ └── Enumerations.cs
│ ├── Configuration
│ │ ├── ExpressionBuilderConfig.cs
│ │ ├── Settings.cs
│ │ └── SupportedType.cs
│ ├── documentation.md
│ ├── Exceptions
│ │ ├── OperationNotFoundException.cs
│ │ ├── PropertyValueTypeMismatchException.cs
│ │ ├── UnsupportedOperationException.cs
│ │ └── WrongNumberOfValuesException.cs
│ ├── ExpressionBuilder.csproj
│ ├── ExpressionBuilder.pdn
│ ├── ExpressionBuilder.png
│ ├── ExpressionBuilder.xml
│ ├── FilterFactory.cs
│ ├── Generics
│ │ ├── Filter.cs
│ │ ├── FilterStatementConnection.cs
│ │ └── FilterStatement.cs
│ ├── Helpers
│ │ ├── OperationEqualityComparer.cs
│ │ └── OperationHelper.cs
│ ├── Interfaces
│ │ ├── IFilter.cs
│ │ ├── IFilterStatementConnection.cs
│ │ ├── IFilterStatement.cs
│ │ ├── IOperation.cs
│ │ ├── IOperationHelper.cs
│ │ └── IPropertyCollection.cs
│ ├── license.txt
│ ├── Operations
│ │ ├── Between.cs
│ │ ├── Contains.cs
│ │ ├── DoesNotContain.cs
│ │ ├── EndsWith.cs
│ │ ├── EqualTo.cs
│ │ ├── GreaterThan.cs
│ │ ├── GreaterThanOrEqualTo.cs
│ │ ├── In.cs
│ │ ├── IsEmpty.cs
│ │ ├── IsNotEmpty.cs
│ │ ├── IsNotNull.cs
│ │ ├── IsNotNullNorWhiteSpace.cs
│ │ ├── IsNull.cs
│ │ ├── IsNullOrWhiteSpace.cs
│ │ ├── LessThan.cs
│ │ ├── LessThanOrEqualTo.cs
│ │ ├── NotEqualTo.cs
│ │ ├── NotIn.cs
│ │ ├── OperationBase.cs
│ │ ├── Operation.cs
│ │ └── StartsWith.cs
│ ├── package.nuspec
│ ├── readme.md
│ └── Resources
│ ├── OperationGlobalizationExtensionMethods.cs
│ ├── PropertyCollection.cs
│ └── Property.cs
├── ExpressionBuilder.Demo
│ └── ExpressionBuilder.Demo.sln
├── ExpressionBuilder.sln
├── ExpressionBuilder.Test
│ ├── App.config
│ ├── CodeCoverage.runsettings
│ ├── CustomOperations
│ │ ├── EqualTo.cs
│ │ └── ThisDay.cs
│ ├── Database
│ │ ├── BuilderTest.cs
│ │ ├── Northwind.cs
│ │ ├── Northwind.Diagram1.view
│ │ ├── Northwind.edps
│ │ └── Northwind.lqml
│ ├── ExpressionBuilder.Test.csproj
│ ├── Integration
│ │ ├── BuilderTest.cs
│ │ ├── OperationTests.cs
│ │ └── PropertyLoaderTest.cs
│ ├── Models
│ │ ├── Contact.cs
│ │ └── Person.cs
│ ├── Northwind.db
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ ├── Operations.Designer.cs
│ │ ├── Operations.pt-BR.Designer.cs
│ │ ├── Operations.pt-BR.resx
│ │ ├── Operations.resx
│ │ ├── Person.Designer.cs
│ │ ├── Person.pt-BR.resx
│ │ └── Person.resx
│ └── Unit
│ ├── FilterTest.cs
│ ├── FilterXmlSerializerTests.cs
│ ├── Helpers
│ │ ├── ExtensionMethods.cs
│ │ └── TestData.cs
│ ├── HelperTests.cs
│ └── Operations
│ ├── BetweenTests.cs
│ ├── DoesNotContainTests.cs
│ ├── EqualToTests.cs
│ ├── InTests.cs
│ ├── IsEmptyIsNotEmptyOperationsTests.cs
│ ├── IsNullIsNotNullOperationsTests.cs
│ ├── IsNullOrWhiteSpaceOrNotOperationsTests.cs
│ ├── MethodCallOperationsTests.cs
│ ├── NotEqualToTests.cs
│ └── SimpleNumericComparisonOperationsTests.cs
├── ExpressionBuilder.Test.NetCore
│ ├── appsettings.json
│ ├── Database
│ │ └── DbDataContext.cs
│ └── ExpressionBuilder.Test.NetCore.csproj
├── ExpressionBuilder.WinForms
│ ├── App.config
│ ├── Builder
│ │ ├── Builder.cs
│ │ ├── Enumerations.cs
│ │ ├── FilterStatement.cs
│ │ ├── Generic
│ │ │ ├── Filter.cs
│ │ │ ├── FilterStatementConnection.cs
│ │ │ ├── IFilter.cs
│ │ │ ├── IFilterStatementConnection.cs
│ │ │ ├── IOrderBy.cs
│ │ │ ├── IOrderByElement.cs
│ │ │ ├── OrderBy.cs
│ │ │ └── OrderByElement.cs
│ │ └── IFilterStatement.cs
│ ├── Controls
│ │ ├── ucFilter.cs
│ │ └── ucFilter.Designer.cs
│ ├── CustomOperations
│ │ ├── EqualTo.cs
│ │ └── ThisDay.cs
│ ├── ExpressionBuilder.WinForms.csproj
│ ├── MainForm.cs
│ ├── MainForm.Designer.cs
│ ├── MainForm.resx
│ ├── Models
│ │ ├── Contact.cs
│ │ └── Person.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── Resources
│ ├── Operations.Designer.cs
│ ├── Operations.pt-BR.Designer.cs
│ ├── Operations.pt-BR.resx
│ ├── Operations.resx
│ ├── Person.Designer.cs
│ ├── Person.pt-BR.resx
│ └── Person.resx
├── LICENSE
├── NuGet.config
├── packages.config
├── pack.bat
├── README.md
└── SonarQube.Analysis.xml
33 directories, 144 files
ExpressionBuilder是一个功能强大的库,旨在提供一个简单的方法来创建Lambda表达式,以便过滤列表和数据库查询。通过提供一个易于使用的流畅接口,该库使得创建、存储和传输这些过滤器变得简单易行。这对于将WebApi请求参数转换为表达式、创建能够保存和重新运行这些过滤器的高级搜索屏幕等方面特别有帮助。
特性包括:通过属性名引用属性、内置空检查、XML序列化支持、复杂表达式支持、自定义操作创建等。此外,还增加了对.NetStandard 2.0的支持,并改进了嵌套属性的支持。
public class Person { public int Id { get; set; } public string Name { get; set; } // 其他属性 } var filter = new Filter<Person>(); filter.By("Id", Operation.Between, 2, 4, Connector.And); // 更多过滤条件 var people = People.Where(filter);如上代码示例所展示,您可以轻松地为Person对象列表构建过滤条件。此外,ExpressionBuilder还支持全球化配置,允许通过资源文件对属性和操作进行本地化设置,从而更好地适应不同语言环境。
如果您正在寻找一个强大且易于使用的库来创建Lambda表达式进行数据过滤,ExpressionBuilder无疑是一个不错的选择。
【实例截图】
【核心代码】
文件清单
└── ExpressionBuilder-43455e89c500c6c8fe3ac1a7e50ca5e3eca0318e
├── _config.yml
├── docs
│ ├── BuildLinqExpressionsDynacallyFormUI.png
│ ├── Operations.pt-BR.resx.PNG
│ ├── Operations.resx.PNG
│ ├── Person.pt-BR.resx.PNG
│ └── Person.resx.PNG
├── dotCover.bat
├── dotCover.xml
├── ExpressionBuilder
│ ├── Builders
│ │ └── FilterBuilder.cs
│ ├── Common
│ │ ├── CommonExtensionMethods.cs
│ │ └── Enumerations.cs
│ ├── Configuration
│ │ ├── ExpressionBuilderConfig.cs
│ │ ├── Settings.cs
│ │ └── SupportedType.cs
│ ├── documentation.md
│ ├── Exceptions
│ │ ├── OperationNotFoundException.cs
│ │ ├── PropertyValueTypeMismatchException.cs
│ │ ├── UnsupportedOperationException.cs
│ │ └── WrongNumberOfValuesException.cs
│ ├── ExpressionBuilder.csproj
│ ├── ExpressionBuilder.pdn
│ ├── ExpressionBuilder.png
│ ├── ExpressionBuilder.xml
│ ├── FilterFactory.cs
│ ├── Generics
│ │ ├── Filter.cs
│ │ ├── FilterStatementConnection.cs
│ │ └── FilterStatement.cs
│ ├── Helpers
│ │ ├── OperationEqualityComparer.cs
│ │ └── OperationHelper.cs
│ ├── Interfaces
│ │ ├── IFilter.cs
│ │ ├── IFilterStatementConnection.cs
│ │ ├── IFilterStatement.cs
│ │ ├── IOperation.cs
│ │ ├── IOperationHelper.cs
│ │ └── IPropertyCollection.cs
│ ├── license.txt
│ ├── Operations
│ │ ├── Between.cs
│ │ ├── Contains.cs
│ │ ├── DoesNotContain.cs
│ │ ├── EndsWith.cs
│ │ ├── EqualTo.cs
│ │ ├── GreaterThan.cs
│ │ ├── GreaterThanOrEqualTo.cs
│ │ ├── In.cs
│ │ ├── IsEmpty.cs
│ │ ├── IsNotEmpty.cs
│ │ ├── IsNotNull.cs
│ │ ├── IsNotNullNorWhiteSpace.cs
│ │ ├── IsNull.cs
│ │ ├── IsNullOrWhiteSpace.cs
│ │ ├── LessThan.cs
│ │ ├── LessThanOrEqualTo.cs
│ │ ├── NotEqualTo.cs
│ │ ├── NotIn.cs
│ │ ├── OperationBase.cs
│ │ ├── Operation.cs
│ │ └── StartsWith.cs
│ ├── package.nuspec
│ ├── readme.md
│ └── Resources
│ ├── OperationGlobalizationExtensionMethods.cs
│ ├── PropertyCollection.cs
│ └── Property.cs
├── ExpressionBuilder.Demo
│ └── ExpressionBuilder.Demo.sln
├── ExpressionBuilder.sln
├── ExpressionBuilder.Test
│ ├── App.config
│ ├── CodeCoverage.runsettings
│ ├── CustomOperations
│ │ ├── EqualTo.cs
│ │ └── ThisDay.cs
│ ├── Database
│ │ ├── BuilderTest.cs
│ │ ├── Northwind.cs
│ │ ├── Northwind.Diagram1.view
│ │ ├── Northwind.edps
│ │ └── Northwind.lqml
│ ├── ExpressionBuilder.Test.csproj
│ ├── Integration
│ │ ├── BuilderTest.cs
│ │ ├── OperationTests.cs
│ │ └── PropertyLoaderTest.cs
│ ├── Models
│ │ ├── Contact.cs
│ │ └── Person.cs
│ ├── Northwind.db
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ ├── Operations.Designer.cs
│ │ ├── Operations.pt-BR.Designer.cs
│ │ ├── Operations.pt-BR.resx
│ │ ├── Operations.resx
│ │ ├── Person.Designer.cs
│ │ ├── Person.pt-BR.resx
│ │ └── Person.resx
│ └── Unit
│ ├── FilterTest.cs
│ ├── FilterXmlSerializerTests.cs
│ ├── Helpers
│ │ ├── ExtensionMethods.cs
│ │ └── TestData.cs
│ ├── HelperTests.cs
│ └── Operations
│ ├── BetweenTests.cs
│ ├── DoesNotContainTests.cs
│ ├── EqualToTests.cs
│ ├── InTests.cs
│ ├── IsEmptyIsNotEmptyOperationsTests.cs
│ ├── IsNullIsNotNullOperationsTests.cs
│ ├── IsNullOrWhiteSpaceOrNotOperationsTests.cs
│ ├── MethodCallOperationsTests.cs
│ ├── NotEqualToTests.cs
│ └── SimpleNumericComparisonOperationsTests.cs
├── ExpressionBuilder.Test.NetCore
│ ├── appsettings.json
│ ├── Database
│ │ └── DbDataContext.cs
│ └── ExpressionBuilder.Test.NetCore.csproj
├── ExpressionBuilder.WinForms
│ ├── App.config
│ ├── Builder
│ │ ├── Builder.cs
│ │ ├── Enumerations.cs
│ │ ├── FilterStatement.cs
│ │ ├── Generic
│ │ │ ├── Filter.cs
│ │ │ ├── FilterStatementConnection.cs
│ │ │ ├── IFilter.cs
│ │ │ ├── IFilterStatementConnection.cs
│ │ │ ├── IOrderBy.cs
│ │ │ ├── IOrderByElement.cs
│ │ │ ├── OrderBy.cs
│ │ │ └── OrderByElement.cs
│ │ └── IFilterStatement.cs
│ ├── Controls
│ │ ├── ucFilter.cs
│ │ └── ucFilter.Designer.cs
│ ├── CustomOperations
│ │ ├── EqualTo.cs
│ │ └── ThisDay.cs
│ ├── ExpressionBuilder.WinForms.csproj
│ ├── MainForm.cs
│ ├── MainForm.Designer.cs
│ ├── MainForm.resx
│ ├── Models
│ │ ├── Contact.cs
│ │ └── Person.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── Resources
│ ├── Operations.Designer.cs
│ ├── Operations.pt-BR.Designer.cs
│ ├── Operations.pt-BR.resx
│ ├── Operations.resx
│ ├── Person.Designer.cs
│ ├── Person.pt-BR.resx
│ └── Person.resx
├── LICENSE
├── NuGet.config
├── packages.config
├── pack.bat
├── README.md
└── SonarQube.Analysis.xml
33 directories, 144 files
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论