C# 如何将键值对检索为具有不同类型值的通用集合?
我正在开发一个C# 如何将键值对检索为具有不同类型值的通用集合?,c#,C#,我正在开发一个C#应用程序,我们将数据存储为sqlite中的key-value对。我已经实现了KeyValue作为(key,value)对的持有者类和ReadTransaction作为只读事务类: public class ReadTransaction { Task<T> GetValue<T>(string key); } public class KeyValue<TValue> { public KeyValue(string key
C#
应用程序,我们将数据存储为sqlite中的key-value
对。我已经实现了KeyValue
作为(key,value)对的持有者类和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; }
}
因为这些键上的值可能是不同类型的
如何编写/实现此功能?我建议您不要将不同类型的元素存储在同一集合中
如果需要,可以使用“object”,如
字典中的可以将T替换为dynamic@Polly. 动态将使OP丢失类型安全每个键的T值类型不同?如果是这样,您希望IEnumerable
如何工作?如果此集合存储不同类型的元素,而不是存储T类型的元素。如果确实需要,您可以使用“object”,但是,在将不同类型的元素存储在单个集合中之前,您确实应该三思而后行。@HasanEmrahSüngüTValue可以是键的任何类型。
Task<IEnumerable<KeyValue<T>>> GetValues<T>(IEnumerable<string> keys);