【问题标题】:Array.Join in .Net?Array.Join 在 .Net 中?
【发布时间】:2010-10-03 19:46:14
【问题描述】:

好的,这是一件愚蠢的事情,我确信我已经做了几十次了,但由于某种原因我找不到它。

我有一个数组...并且想要获取一个字符串,该字符串的内容由分隔符分隔...

我找不到的 .Join() 方法在哪里?

(这是 .Net 2.0,我没有任何 LINQ 的东西)

谢谢!

【问题讨论】:

    标签: arrays join .net-2.0


    【解决方案1】:

    如果您使用的是字符串,那么 String.Join 可能就是您要查找的内容。

    【讨论】:

      【解决方案2】:

      在字符串类上

      String.Join(",", new string[] {"a", "b", "c"});
      

      编辑整数到字符串

       int[] integers = new int[] { 1,2,3,4,5 };
       String.Join(",", Array.ConvertAll<int, String>(integers, Convert.ToString));
      

      【讨论】:

        【解决方案3】:

        如果您有一个strings 数组,您可以调用String.join(String, String[])。即使您没有strings 的数组,您也可以使用它,您只需能够将您的objects 转换为strings

        object[] objects = ...
        string[] strings = new string[objects.Length];
        for (int i = 0; i < objects.Length; i++)
          strings[i] = objects[i].ToString();
        string value = String.Join(", ", strings);
        

        【讨论】:

        • 我的朋友你是一个美丽的人,这正是我所需要的。我祈祷你有一个美好的生活谢谢你节省了我的工作时间!
        【解决方案4】:
        Dim arrStrIds() As String = Array.ConvertAll(arrIntIds, New Converter(Of Integer, String)(
         Function(id As Integer) id.ToString()) )
        
        String.Join(",", arrStrIds)
        

        【讨论】:

          【解决方案5】:

          您可以使用 LINQ to Objects 并节省几行代码

          int [] ints = { 0, 1, 2 };
          string[] intStrings = (from i in ints select i.ToString()).ToArray<string>();
          string joinedStrings = string.Join(",", intStrings);
          

          糟糕,刚刚看到您没有 LINQ,抱歉。

          【讨论】:

            【解决方案6】:

            你可以在String class找到方法。

            使用拆分和连接的示例:

             public static void Main() { 
            
                string str = "on two three, four five six."; 
                char[] separators = {' ', '.', ',' }; 
            
                // Split the string:
                string[] parts = str.Split(separators); 
            
                string allTogether = String.Join(" | ", parts); 
            
                Console.WriteLine("Joined: "); 
                Console.WriteLine(allTogether); 
            
            
              } 
            

            【讨论】:

              【解决方案7】:

              您不需要在 .NET Framework 4 中将数组转换为字符串数组。我不了解以前的框架。所以前面的代码花费了几行将您的 int 数组转换为字符串数组。跳过这一步(如果它也适用于您的框架)。

              string[] sA = "11,12,13".Split(',');
              int[] iA = { 21, 22, 23};
              Console.WriteLine(string.Join("+", iA) + " -- " + string.Join("+", sA));
              
              /* displays:
              21+22+23 -- 11+12+13
              */
              

              【讨论】:

                【解决方案8】:

                如果您真的喜欢 Array.Join 的人体工程学设计,您可以像这样添加Extension Method

                public static class MyExtensions {
                    public static string Join(this IEnumerable<string> arr, string seperator) =>
                        string.Join(seperator, arr);
                }
                

                然后像这样使用:

                var list = new string[] {"A", "B", "C"};
                var output = list.Join(",");
                // "A,B,C"
                

                Demo in .NET Fiddle

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2016-06-03
                  • 2016-02-08
                  • 1970-01-01
                  • 2011-05-23
                  • 2023-02-01
                  • 1970-01-01
                  • 2016-06-28
                  相关资源
                  最近更新 更多