项目字符串的SQL语句的列表,列表
问题描述:
我有一个字符串列表:List<string> NameList = new List<string>()
项目字符串的SQL语句的列表,列表
名称列表包含以下项目: John Doe
,Tom Jones
,Bob Sinclair
我希望以这些项目添加到单个连接的字符串,如下所示:
isnull(piv.[John Doe],0) [John Doe],
isnull(piv.[Tom Jones],0) [Tom Jones],
isnull(piv.[Bob Sinclair],0) [Bob Sinclair]
以上是将使用我正在编写的程序构建的SQL语句。我不需要执行SQL,只需以上述格式将连接的名称列表作为字符串返回即可。
答
这很容易做一点LINQ和$
字符串插值算子。试试这个:
var result = string.Join(
$",{Environment.NewLine}",
NameList.Select(x => $"isnull(piv.[{x}],0) [{x}]"));
string.Join
将所有的结果结合每个元素后的逗号和换行符。
NameList.Select
将每个元素投影到您需要的格式。
Here's a fiddle具有完整的工作示例。它创建这样的输出:
isnull(piv.[John Doe],0) [John Doe], isnull(piv.[Tom Jones],0) [Tom Jones], isnull(piv.[Bob Sinclair],0) [Bob Sinclair]
答
var output = String.Join(",\n", NameList.Select(n =>
string.Format("isnull(piv.[{0}],0) [{0}]", n)));
String.Join
将字符串列表和加入他们与你想给它任何分隔在一起。 String.Format
通过用n
代替{0}
来简单地格式化字符串。所以,在我们列表中的每个字符串,我们使用Select
来选择格式的字符串,然后我们加入该集合与,\n
什么*正是*你以为'ISNULL(PIV。[],0)'来做?这应该是函数调用的结果吗? –
你能否进一步解释,我不确定我是否明白你想要做什么。 –
如果你所要做的只是构建一个字符串来复制/粘贴,你可以使用正则表达式而不是c#。 http://regexr.com/3divk – gunr2171