如何将键值对作为具有不同类型值的通用集合进行检索?

时间:2019-02-07 03:05:17

标签: c#

我正在开发一个C#应用程序,该应用程序将数据以key-value对的形式存储在sqlite中。我已经实现了KeyValue作为(键,值)对的持有者类,并且实现了ReadTransaction作为只读事务类:

public class ReadTransaction
{
    Task<T> GetValue<T>(string key);
}

public class KeyValue<TValue>
{
    public KeyValue(string key)
    {
        Key = key;
    }

    public KeyValue(string key, TValue value)
    {
        Key = key;
        Value = value;
    }

    public string Key { get; }

    public TValue Value { get; set; }
}

我想在ReadTransaction类中使用另一个方法,该方法采用IEnumerable键,并返回IEnumerable<something>,其中包含包含键的键的数据。

我不能这样做:

Task<IEnumerable<KeyValue<T>>> GetValues<T>(IEnumerable<string> keys);

因为这些键上的值可以是不同的类型。

如何编写/实现此功能?

1 个答案:

答案 0 :(得分:1)

我不鼓励您将不同类型的元素存储在同一集合中。

如果需要,可以使用Dictionary<string,object>中的'object'。