TryFind是否有更紧凑的语法?

问题描述

| 我正在使用Microsoft.FSharp.Core.Collections.Fsharpmap 并且经常不得不写:
var oo = world.Entity.TryFind(t);
var entity = oo == null ? null : oo.Value;
和类似。有更好的风格建议吗?     

解决方法

        您可以编写一个扩展方法:
public static T ValueOrDefault<T>(this FSharpOption<T> option)
{
    return option == null ? default(T) : option.Value;
}
用法:
var entity = world.Entity.TryFind(t).ValueOrDefault();