Add IEnumerable.RandomOrDefault extension.

This commit is contained in:
Paul Chote
2013-07-12 20:20:48 +12:00
parent 06b06a5dad
commit 6bf783e674

View File

@@ -110,6 +110,14 @@ namespace OpenRA
return xs[r.Next(xs.Length)]; return xs[r.Next(xs.Length)];
} }
public static T RandomOrDefault<T>(this IEnumerable<T> ts, Thirdparty.Random r)
{
if (!ts.Any())
return default(T);
return ts.Random(r);
}
public static float Product(this IEnumerable<float> xs) public static float Product(this IEnumerable<float> xs)
{ {
return xs.Aggregate(1f, (a, x) => a * x); return xs.Aggregate(1f, (a, x) => a * x);