2
我使用的是使用Microsoft.FSharp.Core.Collections.FSharpMap ,很多时候必须写:TryFind有更紧凑的语法吗?
var oo = world.Entity.TryFind(t);
var entity = oo == null ? null : oo.Value;
与同类。任何建议更好的风格?
我使用的是使用Microsoft.FSharp.Core.Collections.FSharpMap ,很多时候必须写:TryFind有更紧凑的语法吗?
var oo = world.Entity.TryFind(t);
var entity = oo == null ? null : oo.Value;
与同类。任何建议更好的风格?
你可以写一个Extension Method:
public static T ValueOrDefault<T>(this FSharpOption<T> option)
{
return option == null ? default(T) : option.Value;
}
用法:
var entity = world.Entity.TryFind(t).ValueOrDefault();
这是很好,我通常这样做.net类型,可能会返回一个null来包装选项。基本上如果null然后没有其他一些ñ... – Alex 2011-06-06 14:56:32
只是好奇:你为什么不使用'Dictionary',甚至更好,F#? – Daniel 2011-06-04 03:20:08
在我的特殊情况下,我需要一个持久的地图实现来有效地记录历史变化的快照,并且该项目已经基本上是C#了。 – 2011-06-07 00:04:08