将 IDictionary转换为优雅的方式是什么?到 IDictionary;
我有一个我不满意的方法,你能告诉我如何做得更好吗?
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 方法来执行此操作。
I have a method I am not happy with, can you please show me how to do this better.
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);
}
This code works but I'm sure there is a nice linq'y way of doing this I am missing.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Convert.ToString()
对于您期望的 null 值返回null
。更新:
Convert.ToString(object)
返回String.Empty
但Convert.ToString(string)
返回空。不幸的是,这不是您所需要的。我认为奇怪的定义:-/
Convert.ToString()
returnsnull
on null-values which you would expect.Update:
Convert.ToString(object)
returnsString.Empty
butConvert.ToString(string)
returnsnull
. Unfortunately, that is not what you need. Weird definition in my opinion :-/