1

我有一个 IReliableDictionary 并且需要获取字典中的项目并将它们移动到 IList 以从我的可靠服务中返回。

看来我不能做任何类型的 .ToList ,所以我确定我做错了。

public async Task<IList<CustomerOrderItem>> GetOrdersAsync()
{   


   IReliableDictionary<CustomerOrderItemId, CustomerOrderItem> orderItems =
   await this.StateManager.GetOrAddAsync<IReliableDictionary<CustomerOrderItemId, CustomerOrderItem>>(CustomerOrderItemDictionaryName);

   Dictionary<KeyValuePair<CustomerOrderItemId, CustomerOrderItem>, KeyValuePair<CustomerOrderItemId, CustomerOrderItem>> items = orderItems.ToDictionary(v => v);

   IList<CustomerOrderItem> list = orderItems.ToList(); ???

   ...
}

关于如何从字典中获取项目并将它们放入列表的任何想法?

4

2 回答 2

0

IReliableDictionary<K,V>实现IEnumerable<KeyValuePair<K, V>>,所以你可以做一个ToList.

也许确保命名空间被导入。

于 2015-12-25T06:07:53.940 回答
0

IReliableDictionary(就像 IDictionary 一样)是键值对的 IEnumerable,所以你可以这样:

public async Task<IList<CustomerOrderItem>> GetOrdersAsync()
    {
        IReliableDictionary<CustomerOrderItemId, CustomerOrderItem> orderItems =
        await this.StateManager.GetOrAddAsync<IReliableDictionary<CustomerOrderItemId, CustomerOrderItem>>(CustomerOrderItemDictionaryName);

        var list = orderItems.Select(kvp => kvp.Value).ToList();
        return list;
    }
于 2015-12-25T09:26:10.977 回答