Convert IReliableDictionary to IList

放肆的年华 提交于 2019-12-24 14:08:27

问题


I have an IReliableDictionary and need to take the items in the dictionary and move them in to an IList to return from my reliable service.

It seems I can't do a .ToList of any kind, so I'm sure I'm approaching it wrong.

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(); ???

   ...
}

Any ideas on how to take the items from the dictionary and put them in to the list?


回答1:


IReliableDictionary<K,V> implements IEnumerable<KeyValuePair<K, V>>, so you can do a ToList.

Maybe ensure the namespace is imported.




回答2:


IReliableDictionary (just like an IDictionary) is IEnumerable of key value pairs, so you can go this way:

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;
    }


来源:https://stackoverflow.com/questions/34459822/convert-ireliabledictionary-to-ilist

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!