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