有没有办法快速(即不使用foreach)concat以下Dictionary:
Dictionary<string, string> g = new Dictionary<string, string>();
g.Add("K", "k1");
g.Add("L", "l1");
Run Code Online (Sandbox Code Playgroud)
成
"K=@K,L=@L"
Run Code Online (Sandbox Code Playgroud)
得到这个结果"K=k1,L=l1"怎么样?
我正在玩一点String.Join,但这似乎没有做我想要的.
一些背景:我有一个键/值对的列表,我想要在我的数据库中INSERT (...keys...) VALUES (...values...)或更新记录...,key=value, ....
您可以使用LINQ轻松地完成此操作,它仍然foreach在封面下使用,因此它不会"更快",但它应该易于阅读.
Dictionary<string, string> g = new Dictionary<string, string>();
g.Add("K", "k1");
g.Add("L", "l1");
var keys1 = g.Select(x=>String.Format("{0}=@{0}", x.Key));
var result1 = String.Join(",", keys1);
Console.WriteLine(result1);
var keys2 = g.Select(x=>String.Format("{0}={1}", x.Key, x.Value));
var result2 = String.Join(",", keys2);
Console.WriteLine(result2);
Run Code Online (Sandbox Code Playgroud)
我们做的第一件事是创建IEnumerable<String>我们想要的项目,然后我们string.Join将IEnumerable用于单个字符串.
编辑:
如果您要更新到数据库,我建议删除此方法并尝试一些ORM库,如Entity Framework或NHibernate.他们为您完成所有这些工作,使用对象更容易,而不用担心生成动态查询.
| 归档时间: |
|
| 查看次数: |
2638 次 |
| 最近记录: |