C# 类似于阶梯计算的问题
一批货物根据发货的数量来赠送物品,规则类似于阶梯电价、例如1-100台赠送1台,101-200赠送2台,赠送的数量进行累加,怎样循环DataTable得到想要的赠送数量,求教下大体的代码。
建议将这个规则可配置化,如果dataset是一个订单,那发的货就是其中的一个datatable,可以将这个datatable实体化,然后读取config文件里的规则和实体化后的对象进行匹配,最后输出赠品信息,再塞进订单中。
可配置化的优势在于高扩张性。
这不就是数据分页吗, 什么pageSize,pageCount
简单的做法,直接if判断:
public int GetGiveCounter(int purchCount)
{
int giveCount=0;
if(purchCount<=100)
{
giveCount+=1;
}
if(purchCount<=200)
{
giveCount+=2;
}
return;
}
为了扩展,可以设计一个计算的接口、计算的上下文,可以参考策略模式实现。
如果每个发货区间赠送的物品是不确定的,并且进行累加的话怎么循环datatable
@小白一枚_zx: 定义一个以物品为key 以赠送数量为value的字典;在循环中更新字典的value; 不知道对你的问题理解的对不对。
@cdxy2005: 好的,谢谢