我知道我忘记了如何做到这一点而且已经很晚了。
我希望以优雅的方式为munged sql命令构建一个占位符列表。
拥有包含任意数量参数的命令,需要构建?,?,?
我是否提到它是湿脑屁?这就是出现的结果:
如果你只记得我忘记了什么,欢迎你让我觉得自己更像一个白痴。 ; - )
好的,看起来我应该叫它一晚。
你们两个人在离开深渊之前都证实了我在做什么。
这是我的名单,
string names = string.Join(",", _command.Parameters.Cast<SQLiteParameter>().Select(p => p.ParameterName).ToArray());
我刚用'?'
替换了p.Namestring vals = string.Join(",", _command.Parameters.Cast<object>().Select(p => "?").ToArray());
但出于某种原因,我不赞成。
感谢。
答案 0 :(得分:2)
嗯,这表明了自己:
string x = string.Join(",", Enumerable.Repeat("?", count).ToArray());
在.NET 4中,这可以稍微简化,因为string.Join
有新的重载:
string x = string.Join(",", Enumerable.Repeat("?", count));
另一方面,我很想用循环来做这件事:
StringBuilder builder = new StringBuilder();
for (int i = 0; i < count; i++)
{
builder.Append("?,");
}
builder.Length--; // Remove trailing ,
return builder.ToString();
无论哪种方式,我都会把它放在一个单独的方法中,所以简洁性不太重要。
答案 1 :(得分:0)
按照@ Jon的回答:
string.Join(",", _command.Parameters.Cast<object>().Select(p => "?").ToArray())