c# - .Net 中 NameValueCollection 的通用形式

标签 c# .net generics

.Net 是否提供 NameValueCollection 的通用形式或替代形式 Dictionary<string,List<T>>

有点像

Person john = new Person();
...
Person vick = new Person();
...

NameValueCollection<Person> stringToPerson = new  NameValueCollection<Person>();
stringToPerson.Add("John",john)
stringToPerson.Add("Vick",vick)

实际上在我的情况下我被迫依赖Dictionary<string,List<Peron>> ,还有其他选择吗?

问候, 天啊

最佳答案

据我所知,BCL 中没有这样的东西。我只想编写你自己的类来包装 Dictionary<string, List<T>>在内部公开适当的方法(例如,Add 可以为给定的键向 List<T> 添加一个元素)。

例如:

class NameValueCollection<T>
{
    Dictionary<string, List<T>> _dict = new Dictionary<string, List<T>>();

    public void Add(string name, T value)
    {
        List<T> list;
        if (!_dict.TryGetValue(name, out list))
        {
            _dict[name] = list = new List<T>();
        }

        list.Add(value);
    }

    // etc.
}

关于c# - .Net 中 NameValueCollection 的通用形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5209474/

相关文章:

c# - 如何从 C# 中的 ExecuteOracleNonQuery 获取 rowid

c# - 为什么彼得森的锁在这个测试中失败了?

c# - 通过 Web API 将文件流上传到 StreamReader

c# - 单点登录 - API 版本控制和共享数据传输对象

c# - MVC 路由在根目录中拾取区域 Controller

java - .Net 可以加载 IL 文件(例如 java 类文件),还是必须加载整个程序集?

java - 如何使通用类型可序列化?

c# - 列出不同类型

java - 从映射 <String, Table<? 获取具有未知泛型参数的对象扩展实体>>

c# - 具有可为空 Guid 的 PetaPoco ExecuteScalar