项目字符串的SQL语句的列表,列表

问题描述:

我有一个字符串列表:List<string> NameList = new List<string>()项目字符串的SQL语句的列表,列表

名称列表包含以下项目: John DoeTom JonesBob Sinclair

我希望以这些项目添加到单个连接的字符串,如下所示:

isnull(piv.[John Doe],0) [John Doe], 
isnull(piv.[Tom Jones],0) [Tom Jones], 
isnull(piv.[Bob Sinclair],0) [Bob Sinclair] 

以上是将使用我正在编写的程序构建的SQL语句。我不需要执行SQL,只需以上述格式将连接的名称列表作为字符串返回即可。

+0

什么*正是*你以为'ISNULL(PIV。[],0)'来做?这应该是函数调用的结果吗? –

+0

你能否进一步解释,我不确定我是否明白你想要做什么。 –

+0

如果你所要做的只是构建一个字符串来复制/粘贴,你可以使用正则表达式而不是c#。 http://regexr.com/3divk – gunr2171

这很容易做一点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