SingleSelector.cs 611 B

12345678910111213141516171819202122232425
  1. using System;
  2. namespace Masuit.Tools.RandomSelector
  3. {
  4. /// <summary>
  5. /// 单选器
  6. /// </summary>
  7. /// <typeparam name="T"></typeparam>
  8. internal class SingleSelector<T> : SelectorBase<T>
  9. {
  10. internal SingleSelector(WeightedSelector<T> weightedSelector) : base(weightedSelector)
  11. {
  12. }
  13. internal T Select()
  14. {
  15. if (WeightedSelector.Items.Count == 0)
  16. {
  17. throw new InvalidOperationException("没有元素可以筛选");
  18. }
  19. return BinarySelect(WeightedSelector.Items).Value;
  20. }
  21. }
  22. }