【问题标题】:Appending a Char to each element in a array将 Char 附加到数组中的每个元素
【发布时间】:2018-05-27 19:33:50
【问题描述】:

在我的例子中,输入是一个字符串,其中包含以逗号分隔的元素列表

输入:

var input = "123,456,789";

预期输出(字符串):

"'123','456','789'"

我正在 VB.net 中寻找解决方案,但我不太熟悉它。所以,我在 c# 中尝试了它。不知道我错过了什么。

我的尝试:

var input = "123,456,789";
var temp = input.Split(new Char[] { ',' });
Array.ForEach(temp, a => a = "'" + a + "'");
Console.WriteLine(String.Join(",",temp));

实际输出:

"123,456,789"

非常感谢为 vb.net 中的解决方案提供资金的任何帮助 :)

【问题讨论】:

  • 非常感谢为 vb.net 中的解决方案提供资金的任何帮助 :)
  • 你的 ForEach 没有做你认为它正在做的事情(它正在更新一个局部变量 a,而不是数组中的值)。
  • 由于字符串的工作方式,当您执行 a = "'" + a + "'" 时,您不会替换 a 的值。您不会更改拆分返回的字符串集合中项目的值。您正在创建一个新字符串并将其命名为 a。这使得 temp 集合中的项目保持不变。

标签: c#


【解决方案1】:

你可以使用 LINQ:

var result = string.Join(",", input.Split(',').Select(x => "'" + x + "'"))

这会在, 分隔符处拆分字符串,然后使用Select() 在片段周围添加引号,然后使用string.Join() 重新组合数组

编辑:这是等效的 VB.NET 解决方案:

Dim result As String
result = String.Join(",", input.Split(",").Select(Function (x) ("'" & x & "'" )))

【讨论】:

  • 这在 c# 中完美运行。我实际上是在寻找一个 VB.net 解决方案。 Vb.net 中没有这些功能中的几个:(
  • @Reddy 如果你想要一个 vb.net 解决方案,你应该只用 vb.net 而不是 c# 标记它,并展示你在 vb.net 中的尝试。
  • 我将它标记为 c# 和 vb,但看起来有人对其进行了编辑。由于我无法在 C# 中完成此操作,因此在发布此问题时我没有在 vb.net 中尝试。
  • dotnetfiddle.net/MLZCQ9 它在抱怨“'Select' 不是 'System.Array' 的成员。”
  • @Reddy 你要加Imports System.Linq
【解决方案2】:

input = Regex.Replace(input, "\d+", "'$0'");

【讨论】:

    【解决方案3】:
    var input = "123,456,789";
    var temp = input.Split(new Char[] { ',' });
    temp = Array.ConvertAll(temp, a => a = "'" + a + "'");
    
    Console.WriteLine(String.Join(",", temp));
    

    另请参阅:https://stackoverflow.com/a/3867998/194717

    【讨论】:

      【解决方案4】:

      这里有很多解决方案,但我认为这会更快:

      var newStr = "'" + string.Replace(str, ",", "','") + "'";
      

      在 VB.NET 中

      Private newStr = "'" & String.Replace(str, ",", "','") & "'"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-05
        • 2017-03-03
        • 1970-01-01
        • 2017-01-15
        • 2021-10-04
        • 1970-01-01
        • 2021-07-04
        • 1970-01-01
        相关资源
        最近更新 更多