【发布时间】:2021-03-08 17:59:30
【问题描述】:
我想知道如何将这段代码逐行从 C# 转换为 F#。我不打算使用任何 F# 的习语或类似的东西。我正在尝试了解如何在 F# 中枚举和反射。
using System.Linq;
namespace System.Collections.Generic
{
public static class EnumerableExtensions
{
private static readonly Random random;
static EnumerableExtensions()
{
random = new Random();
}
public static T Random<T>(this IEnumerable<T> input)
{
return input.ElementAt(random.Next(input.Count()));
}
}
}
【问题讨论】:
-
您的随机变量应该具有
[ThreadStatic]作为属性,以使代码在多线程情况下安全。
标签: f#