C# 如何将数组转换为sql的引号和逗号分隔字符串?
我有一个要传递到SQL的列表,但它们必须是单引号和逗号分隔的 所以C# 如何将数组转换为sql的引号和逗号分隔字符串?,c#,linq,C#,Linq,我有一个要传递到SQL的列表,但它们必须是单引号和逗号分隔的 所以List=abc 但是我需要一个string='a','b','c' 如何以简洁的方式完成此任务 我想是这样,但在LINQ中看不到如何添加开头和结尾: String.Join(",", arr.Select(p => p.ToString()).ToArray()) 您可以这样做: String.Join(",", arr.Select(p => $"'{p.ToString()}'").ToArray()); 这
List=abc
但是我需要一个string='a','b','c'
如何以简洁的方式完成此任务
我想是这样,但在LINQ中看不到如何添加开头和结尾:
String.Join(",", arr.Select(p => p.ToString()).ToArray())
您可以这样做:
String.Join(",", arr.Select(p => $"'{p.ToString()}'").ToArray());
这将使每个元素的
'
位于p.ToString()
的两侧。可能与以下内容类似:
String.Join(",", arr.Select(p=> "'" + p.ToString() + "'").ToArray());
// or is p already a string
String.Join(",", arr.Select(p => "'" + p + "'").ToArray());
使用支持以下构造的ORM:
string[] items = GetItems();
var query = db.Rows.Where(row => items.Contains(row.ColumnName));
这样,您就不会通过自己构造字符串将自己交给数据库来打开sql注入。如果源数据包含
“
”,您也应该小心,在这种情况下,您需要转义“
”。试试这个:
var arr = new [] { "a'c", "b" };
var output = String.Join(",", arr.Select(p => $"'{p.Replace("'", "''")}'"));
这就给了
“'a''c','b'
”原始列表的可用格式?原始列表是我使用过的列表。添加以更新它的值。String.Join(“,”,arr.Select(p=>”“+p.ToString()+”)
?这闻起来像,例如,生成要在子句中使用的值字符串,或以可怕的非规范化方式存储CSV字符串。可能有更好的方法来解决实际问题。.ToArray()
是多余的。CS1056:意外的字符“$”,我认为您缺少右括号?