c# - 什么是将 IDictionary<string, object> 转换为 IDictionary<string, string> 的优雅方法

标签 c# linq

我有一个我不满意的方法,你能告诉我如何做得更好吗?

public Foo WithBar(IDictionary<string, object> parameters) {
    var strStrDict = new Dictionary<string, string>(parameters.Count);
    foreach(var pair in parameters)
    {
        strStrDict.Add(pair.Key, pair.Value != null ? pair.Value.ToString() : (string)null);
    }      
    // Call overload which takes IDictionary<string, string>  
    return this.WithBar(strStrDict);
}

此代码有效,但我确信我缺少一种很好的 linq'y 方法。

最佳答案

parameters.ToDictionary(k=>k.Key, v=>v.Value!=null?v.Value.ToString():(string)null);

关于c# - 什么是将 IDictionary<string, object> 转换为 IDictionary<string, string> 的优雅方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5736704/

相关文章:

c# - client.GetAsync 不刷新我的数据

c# - 在代码中使用 System.data 命名空间时未找到 OleDbConnection

c# - 将非托管 C++ 项目移植到 C#

c# - LINQ 语句是否比 'foreach' 循环更快?

c# - Linq:在 Lambda 表达式中分配变量

c# - 使 WPF TextBox 绑定(bind)触发每个新角色?

c# - 0x800a1391 - JavaScript 运行时错误 : 'jQuery' is undefined

c# - 如何放弃对所有 linq 表所做的更改?

c# - SQL to LINQ with Case .. When in Order By

java - HQL 中的 Linq ".any"等价物