C# 需要多回路效率方面的帮助吗

C# 需要多回路效率方面的帮助吗,c#,java,vba,C#,Java,Vba,我正在写一个例行程序,计算出在给定的一个月内给人们的某些福利的应计金额以及这些应计金额的支付日期 有一些事情需要循环,我想知道如何提高循环结构的效率或使用替代方案 当我获得某种好处时,我必须弄清楚它是简单的还是复杂的。简单的意思是你每14天得到x的报酬。复杂意味着几件事: 你每x天得到一次报酬,x是可以定义的。 数量取决于你是否每天都工作,所以我需要查一查这个人是否在周末工作,当他们休假的时候 该福利可在一年中的某些时期暂停发放,例如学校学期假期,仅在4月1日至8月23日期间暂停发放 我在某处寻

我正在写一个例行程序,计算出在给定的一个月内给人们的某些福利的应计金额以及这些应计金额的支付日期

有一些事情需要循环,我想知道如何提高循环结构的效率或使用替代方案

当我获得某种好处时,我必须弄清楚它是简单的还是复杂的。简单的意思是你每14天得到x的报酬。复杂意味着几件事:

你每x天得到一次报酬,x是可以定义的。 数量取决于你是否每天都工作,所以我需要查一查这个人是否在周末工作,当他们休假的时候 该福利可在一年中的某些时期暂停发放,例如学校学期假期,仅在4月1日至8月23日期间暂停发放 我在某处寻找一些模式,无论是在书中还是在网站上。我没有要求任何人为我设计它

我尝试了一些捷径:

我利用假期将日期序列化为字符串,然后使用标准的InString函数检查数据是否在其中 在某些情况下,创建我可以检查的数组时,InString似乎工作得更快,而不是在记录集中循环 使用简单的SQL语句从tblHoliday中选择ixHoliday,其中tblHoliday.dtHoliday=dtd 但是,我使用的表创建了从另一个系统读取的各个假日。这对今年预定的假期有帮助,但对复活节等没有帮助,除非我把它们输入——我有这个算法。这个问题会在未来几年出现,我会简化假设

这用于编制5年预测


我很快就要带一个分析器去设计,但我想知道关于构造这种模式的任何资源。

我不能对您的算法的其余部分发表评论,因为它听起来非常特定于领域,但肯定是这样的

我利用假期将日期序列化为字符串,然后使用标准的InString函数检查数据是否在其中

不是测试集合是否包含给定值的日期的最快/最简单/最有效的方法


不管您使用的是哪种语言,也不管您没有指定,任何现代语言/库C和Java都有容器对象和结构,这些对象和结构提供了一些操作来测试某个对象是否包含在某个列表中,而该列表没有转换为序列化和字符串解析。

我无法对您的算法的其余部分发表评论,这听起来非常特定于领域,但肯定是

我利用假期将日期序列化为字符串,然后使用标准的InString函数检查数据是否在其中

不是测试集合是否包含给定值的日期的最快/最简单/最有效的方法


不管您使用的是哪种语言,也不管您没有指定,任何现代语言/库C和Java都有容器对象和结构,这些对象和结构提供了一些操作来测试某个对象是否包含在某个列表中,而该列表没有转化为序列化和字符串解析。

对不起,我看到您试图给出很多详细信息,但你真的没有说清楚你到底想加速什么。也许如果您包含一些代码,它会有所帮助?我同意mquander。很难在看不见的情况下优化代码站点。抱歉,我看到您试图提供很多详细信息,但您确实没有明确说明您想要加快的是什么。也许如果您包含一些代码,它会有所帮助?我同意mquander。很难在看不见的情况下优化代码站点。我的想法正是——回答得很好@Paddy—查看Hashtable Java和DateTime.Net的Hashtable/DictionaryOf,找到存储假日的最佳方法。BitSet Java/BitArray.Net的性能会更高,但需要额外考虑一下如何使用。谢谢大家-将通过Optimizer进行尝试。有一堆代码。若探查器并没有带来任何乐趣,那个么在上面发布一些更高级别的psuedo代码可能会更好。我的想法正是——很好的答案@Paddy—查看Hashtable Java和DateTime.Net的Hashtable/DictionaryOf,找到存储假日的最佳方法。BitSet Java/BitArray.Net的性能会更高,但需要额外考虑一下如何使用。谢谢大家-将通过Optimizer进行尝试。有一堆代码。若探查器并没有带来任何乐趣,那个么在上面发布一些更高级别的psuedo代码可能会更好。