相关疑难解决方法(0)

Lookup <TKey,TElement>有什么意义?

MSDN解释了这样的Lookup:

一个Lookup<TKey, TElement> 酷似Dictionary<TKey, TValue>.不同之处在于 Dictionary <TKey,TValue>将键映射到单个值,而 Lookup <TKey,TElement>将键映射到值集合.

我没有发现这种解释特别有用.Lookup用于什么?

.net c# linq lookup

144
推荐指数
5
解决办法
8万
查看次数

已经存在此算法的高阶函数?

我想出了我在F#代码中需要的这个简单的算法(将元组列表转换为列表键的映射集合):

let MergeIntoMap<'K,'V when 'K: comparison>(from: seq<'K*'V>): Map<'K,seq<'V>>=
    let keys = from.Select(fun (k,v) -> k)
    let keyValuePairs = seq {
        for key in keys do
            let valsForKey = from.Where(fun (k,v) -> key = k).Select(fun (k,v) -> v) |> seq
            yield key,valsForKey
    }
    keyValuePairs |> Map.ofSeq
Run Code Online (Sandbox Code Playgroud)

输入示例:

[ ("a", 1); ("b", 2), ("a", 3) ]
Run Code Online (Sandbox Code Playgroud)

输出:

dict [ ("a", [1; 3]), ("b", [2]) ]
Run Code Online (Sandbox Code Playgroud)

而且我认为这必须是BCL或F#的高阶函数中的某些东西?如果是,有人可以引用我吗?因为我确定我的代码效率不高,因为它...

collections f# higher-order-functions

5
推荐指数
1
解决办法
104
查看次数

标签 统计

.net ×1

c# ×1

collections ×1

f# ×1

higher-order-functions ×1

linq ×1

lookup ×1