public static T RandomSingle <T>(this BaseCombinatoric <T> source) { var count = source.LongCount; if (count == 0L) { throw new InvalidOperationException("source contains no element"); } return(source.ElementAt(MathExt.Random.NextLong(count))); }
public static T RandomSingleOrDefault <T>(this BaseCombinatoric <T> source) { var count = source.LongCount; if (count == 0L) { return(default(T)); } return(source.ElementAt(MathExt.Random.NextLong(count))); }