C# 均衡权重分配

模拟实体类:

 class Server
        {
            public String Ip_Port { get; set; }
            public int weightip { get; set; }
            public override string ToString()
            {
                Console.WriteLine($"Ip_Port={Ip_Port},weightip={weightip}");
                return base.ToString();
            }
        }

模拟数据源:

 List<Server> servers = new List<Server>
           {
               new Server
               {
                   Ip_Port="asdas:1223",
                   weightip=2
               },
               new Server
               {
                   Ip_Port="tegwer:154782",
                   weightip=1
               },
               new Server
               {
                   Ip_Port="kjhvd:41201",
                   weightip=3
               },
               new Server
               {
                   Ip_Port="errtqwe:412177",
                   weightip=9
               },
               new Server
               {
                   Ip_Port="hjyhdf:7878",
                   weightip=7
               }
           };

主要代码:

                int sum = 0;
                var rand = new Random();
                int num = rand.Next(1, servers.Select(t => t.weightip).Sum());
                foreach (var item in servers)
                {
                    sum += item.weightip;
                    if (num > sum)
                        continue;
                    Console.WriteLine(item.ToString());
                    break;
                }

10次模拟结果:

            int n = 0;
            var rand = new Random();
            while (n++<10)
            {
                int sum = 0;
                int num = rand.Next(1, servers.Select(t => t.weightip).Sum());
                foreach (var item in servers)
                {
                    sum += item.weightip;
                    if (num > sum)
                        continue;
                    Console.WriteLine(item.ToString());
                    break;
                }
            }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值