using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace digui { class Program { static Dictionary< string, double> resulkt = new Dictionary<string, double>();//返佣结果 static void Main(string[] args) { //List<double> list = new List<double>() { 70, 50, 40, 30 };//返佣列表 List<double> list = new List<double>() { 0.4, 0.3, 0.2, 0.1 };//返佣列表 string orderCreater = "aaa";//订单创建人 var orderValue = 1000; string startLevel = "One"; //string startLevel = "Two"; //string type = "value"; string type = "percent"; if (startLevel == "Two")//从上级开始返佣 { FanYong(list, orderCreater, orderValue, type); } else if (startLevel == "One")//从自己开始返佣 { resulkt.Add(orderCreater, list[0]* orderValue); list.RemoveAt(0); FanYong(list, orderCreater, orderValue, type); } } static void FanYong(List<double> list,string creater,double orderValue,string type)//递归返佣 { if (list.Count>0) { var user = ShangJi(creater); if (!string.IsNullOrEmpty(user)) { if (type == "value") { resulkt.Add(user, list[0]); list.RemoveAt(0); FanYong(list, user, orderValue, type); } else if (type == "percent") { resulkt.Add(user, list[0]* orderValue); list.RemoveAt(0); FanYong(list, user, orderValue, type); } } else { return; } } } static string ShangJi(string id)//查找上级 { //var firstLevelId = IUserService.Queryable.FirstOrDefault(e => e.id = id)?.firstLevel?.id; return "-" + id; } } }