让我们假设:
List<element>
哪个元素是:
public class Element(){
int Weight {get;set;}
}
我想要实现的是,通过权重随机选择一个元素。例如:
Element_1.Weight = 100;
Element_2.Weight = 50;
Element_3.Weight = 200;
所以
- 被选中的几率
Element_1
是 100/(100+50+200)=28.57% - 被选中的几率
Element_2
是 50/(100+50+200)=14.29% - 被选中的几率
Element_3
是 200/(100+50+200)=57.14%
我知道我可以创建一个循环,计算总数等...
我想学习的是,Linq 在一行(或尽可能短)中执行此操作的最佳方法是什么,谢谢。
更新
我在下面找到了答案。我学到的第一件事是:Linq 不是魔法,它比精心设计的循环慢。
所以我的问题变成了按重量找到一个随机元素,(没有尽可能短的东西:)