Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# 组织大量谓词库的设计模式或好主意_C#_Linq_Predicatebuilder - Fatal编程技术网

C# 组织大量谓词库的设计模式或好主意

C# 组织大量谓词库的设计模式或好主意,c#,linq,predicatebuilder,C#,Linq,Predicatebuilder,我已经编写/正在编写大量谓词,用于测试单个复杂实体的状态。这些谓词部分是LINQ查询,我假设它们被转换为SQL,部分是用于验证实体状态的C lambda/方法 这一切似乎让我想起了数字设计和K地图。但也许那是个错误的转弯 我怀疑我是第一个有这个问题的人。有谁能告诉我这方面有哪些设计模式或最佳实践吗?主要问题是如何使用这些谓词?应该组织这些谓词,以便快速检索特定域中任务的相关谓词。由于域不同,相应的索引策略也可能不同 例如,如果谓词组与概念相关并且需要按概念检索,则可以使用概念图和扩展激活策略检索

我已经编写/正在编写大量谓词,用于测试单个复杂实体的状态。这些谓词部分是LINQ查询,我假设它们被转换为SQL,部分是用于验证实体状态的C lambda/方法

这一切似乎让我想起了数字设计和K地图。但也许那是个错误的转弯


我怀疑我是第一个有这个问题的人。有谁能告诉我这方面有哪些设计模式或最佳实践吗?

主要问题是如何使用这些谓词?应该组织这些谓词,以便快速检索特定域中任务的相关谓词。由于域不同,相应的索引策略也可能不同

例如,如果谓词组与概念相关并且需要按概念检索,则可以使用概念图和扩展激活策略检索相关谓词


或者,您可能只需要简单的哈希表和树,通过谓词(即查询中的关系)和谓词关系中的属性进行索引。

我认为这里没有足够的上下文给您提供一个好的答案,但如果您能够识别出应用程序和k-maps之间的相似性,那么您可能已经达到了使用最佳模式和实践设计库的水平。