如果我这样做,我会使用哪种重载?

时间:2017-11-03 05:59:18

标签: vb.net

true

基本上我将dict(字符串,字符串)转换为dict(字符串,双精度)。

我的问题是我没有看到任何带有单个函数的toDictionary的重载。

注意:正确的格式实际上是

        var credentials = new SearchCredentials("account-key (query or admin key)");
        var indexClient = new SearchIndexClient("account-name", "index-name", credentials);
        var searchParameters = new SearchParameters()
        {
            QueryType = QueryType.Full,
            IncludeTotalResultCount = true
        };
        var searchResults = await indexClient.Documents.SearchAsync("*", searchParameters);
        Console.WriteLine("Total documents in index (approx) = " + searchResults.Count.GetValueOrDefault());//Prints the total number of documents in the index

所有重载运算符都采用1个函数,该函数将keyvaluepair作为参数。

不知何故工作的那个使用2个功能。这就是我感到困惑的地方。

1 个答案:

答案 0 :(得分:1)

您需要为键和值指定选择器。没有过载只会从原始Dictionary中获取密钥。请注意,ToDictionary实际上是在IEnumerable(Of T)上调用的,因此它不知道源是Dictionary。它只知道它是IEnumerable(Of KeyValuePair(Of String, String))。您必须告诉它如何从Dictionary来源的项目中获取新IEnumerable(Of T)的密钥。

E.g。

Dim dict2 = dict1.ToDictionary(Function(kvp) kvp.Key, Function(kvp) CDbl(kvp.Value))