看到没有 ForceCreate() 方法(或类似方法)
您始终可以为此创建ForceCreate()
扩展方法Lazy<T>
:
public static class LazyExtensions
{
public static Lazy<T> ForceCreate<T>(this Lazy<T> lazy)
{
if (lazy == null) throw new ArgumentNullException(nameof(lazy));
_ = lazy.Value;
return lazy;
}
}
...伴随着ForEach
扩展方法IEnumerable<T>
:
public static class EnumerableExtensions
{
public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action)
{
if (enumerable == null) throw new ArgumentNullException(nameof(enumerable));
if (action == null) throw new ArgumentNullException(nameof(action));
foreach (var item in enumerable)
{
action(item);
}
}
}
通过结合这两种扩展方法,您可以一次性强制创建它们:
items.ForEach(x => x.ForceCreate());