C#:将 Dictionary<> 转换为 NameValueCollection

标签 c# namevaluecollection

如何转换 Dictionary<string, string>NameValueCollection

我们项目的现有功能返回一个老式的 NameValueCollection我用 LINQ 修改了它。结果应作为 NameValueCollection 传递.

我想以一种通用的方式解决这个问题。有什么提示吗?

最佳答案

为什么不使用简单的 foreach 循环?

foreach(var kvp in dict)
{
    nameValueCollection.Add(kvp.Key.ToString(), kvp.Value.ToString());
}

这可以嵌入到扩展方法中:

public static NameValueCollection ToNameValueCollection<TKey, TValue>(
    this IDictionary<TKey, TValue> dict)
{
    var nameValueCollection = new NameValueCollection();

    foreach(var kvp in dict)
    {
        string value = null;
        if(kvp.Value != null)
            value = kvp.Value.ToString();

        nameValueCollection.Add(kvp.Key.ToString(), value);
    }

    return nameValueCollection;
}

你可以这样调用它:

var nameValueCollection = dict.ToNameValueCollection();

关于C#:将 Dictionary<> 转换为 NameValueCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7230383/

相关文章:

C# 名称值集合 : Should we check if key exists before we remove those?

c# - 使用 Protobuf-net 序列化对象列表

c# - 对名称值集合进行排序

c# - 将 DataRowCollection 转换为 NameValueCollection

c# - 为什么我会得到这个 XML block 的 org.xml.sax.SAXException?

.net - NameValueCollection 的高效搜索

c# - 嵌套接口(interface)的替代方案(在 C# 中不可能)

c# - Xamarin Forms UWP - 无法为 .NET Native 工具链编译

c# - 将基类中的数据合并到派生类中