c# - 编程逻辑! :O

标签 c# ssis

因为缺乏看似合理的编程逻辑而难过..

在 SSIS 的脚本任务中。需要做一些数据转换..如下..

switch(LeadTime)
{

case: 1

WM1 = DAY1
WM2 = DAY2
WM3 = DAY3
WM4 = DAY4
WM5 = DAY5
WM6 = DAY6
WM7 = DAY7


case: 2

WM1 = DAY1 + DAY2
WM2 = DAY2 + DAY3
WM3 = DAY3 + DAY4
WM4 = DAY4 + DAY5
WM5 = DAY5 + DAY6
WM6 = DAY6 + DAY7
WM7 = DAY7 + DAY1


case: 3


WM1 = DAY1 + DAY2 + DAY3
WM2 = DAY2 + DAY3 + DAY4
WM3 = DAY3 + DAY4 + DAY5
WM4 = DAY4 + DAY5 + DAY6
WM5 = DAY5 + DAY6 + DAY7
WM6 = DAY6 + DAY7 + DAY1
WM7 = DAY7 + DAY1 + DAY2


..................

case: 7 

WM1 = DAY1 + DAY2 + DAY3 + DAY4 + DAY5 + DAY6 + DAY7
WM2 = DAY2 + DAY3 + DAY4 + DAY5 + DAY6 + DAY7 + DAY1 
WM3 = DAY3 + DAY4 + DAY5 + DAY6 + DAY7 + DAY1 + DAY2 
WM4 = DAY4 + DAY5 + DAY6 + DAY7 + DAY1 + DAY2 + DAY3 
WM5 = DAY5 + DAY6 + DAY7 + DAY1 + DAY2 + DAY3 + DAY4 
WM6 = DAY6 + DAY7 + DAY1 + DAY2 + DAY3 + DAY4 + DAY5 
WM7 = DAY7 + DAY1 + DAY2 + DAY3 + DAY4 + DAY5 + DAY6 


}

我如何围绕它构建一个循环以使其成为良好的编程?我很茫然,因为它在中间值之后从两端添加..

这就是我能做的! :O

case: 7

for(int i=0;i<LeadTime;i++)
{
WM1 += Array[i];
WM2 += Array[i];
...
WM7 += Array[i];
}

最佳答案

您可以使用模数来环绕。这应该适用于所有人:

WM = new int[7];
for (int i = 0; i < LeadTime; i++) {
  for (int j = 0; j < WM.Length; j++) {
    WM[j] += Array[(i + j) % 7];
  }
}

关于c# - 编程逻辑! :O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5518828/

相关文章:

sql-server - 在数据导入期间,如何将平面文件中的 dd-mmm-yy 值格式化为smalldatetime?

sql-server - 如何比较SSIS中的两个表? (SQL 服务器)

sql - 为什么SSIS中的Union All转换是部分/半阻塞转换?

c# - .NET Framework 和 .NET Standard 冲突(兼容性问题)

c# - 在模态对话框上显示 MessageBox 后,ALT + TAB 不起作用

c# - 使用 IComparer 进行分组和排序

c# - 使用 Json.net 将 JSON 数组中的多个项目添加到 C# 中的对象

C#:方法故障(没有可中断或继续的封闭循环)

sql-server - "Microsoft Access database Engine"Hresult : 0X80004005 Description: "External Table is not in expected Format."

c# - SSIS如何强制祖父容器执行结果成功