将多行逗号分隔的文本框值转换为单引号

我有一个代码,将列表框中的多个选定项目转换为一行逗号分隔值。 现在我想在多行文本框中实现相同的function,在多行文本框中,值将像a​​bc,def,pqr现在我想将它分开以便在数据库’abc’,’def’,’pqr’中进行搜索。 我正在使用的以下代码是为listbox如何修改它,以便我可以将其用于文本框目的

var SB = new StringBuilder(); foreach (ListItem lst in ListBox1.Items) { if (lst.Selected) { SB.Append("'" + lst.Value + "',"); } } var FinalString = SB.ToString().Substring(0, (SB.Length - 1)); 

 String.Join(",", txt.Lines.Select(s => "'" + s + "'")) 

String.Join是一个方法,它将分隔符作为第一个参数,将一系列字符串作为第二个参数。 它解决了开箱即用的问题,更重要的是解决了“最后一个逗号”问题,这个问题在使用循环时非常烦人。 您可以将此方法用于列表框代码。

第二个参数将字符串数组映射到添加了单引号的相同字符串。 基本上它需要一堆字符串并将转换应用于每个字符串并返回一堆转换后的字符串。 转换以lambda表达式表示。

原来的答案非常好。 但请注意,修改每个输入字符串的另一种方法是简单地构造连接文本:

 "'" + string.Join("','", txt.Lines) + "'" 

这样,创建的中间对象就更少了(没有Select()迭代器,只有一个额外的string.Concat()调用,而不是每个枚举元素一个)。 在大多数情况下,两者之间没有可测量的差异,但有些人可能更喜欢这种方法(代码稍微短一点,毕竟😊)。