【问题标题】:.NET equivalent of java.util.Arrays.toString(...) methods in Java.NET 等效于 Java 中的 java.util.Arrays.toString(...) 方法
【发布时间】:2009-03-09 03:32:48
【问题描述】:

在 Java 中,java.util.Arrays 类有几个静态 toString(...) 方法,它们接受一个数组并返回它的字符串表示形式(即,用逗号分隔的数组内容的字符串表示形式和用方括号括起来的整个表示形式 - - 例如“[1, 2, 3]”)。

.NET 中是否有等效的方法/功能?

我正在寻找一种不需要手动构造循环/方法来遍历数组的 for 方法。

【问题讨论】:

    标签: java .net arrays comparison


    【解决方案1】:

    String.Join 方法。

    [您需要自己添加方括号]

    【讨论】:

    • 此解决方案仅适用于数组已经是字符串类型的情况。
    • 是的。我以为这就是所要求的。
    • @Mitch,基于 [1, 2, 3] 示例,我认为他正在寻找更通用的解决方案。但他接受了你的,所以我把它倒过来了。
    【解决方案2】:

    试试这个。它不会处理 NULL 值,但可以处理值类型和引用类型。因为它是一种扩展方法,所以您可以在任何数组实例上调用 .ToElementString()。

    public static string ToElementString<T>(this T[] array) {
      var middle = array.Select(x => x.ToString().Aggregate((l,r) => l+","+r);
      return "[" + middle + "]";
    }
    

    这是一个使用构建器的版本,并且可能会更有效率(只有分析器肯定知道)。它还将正确处理空值。

    public static string ToElementString<T>(this T[] array) {
      var builder = new StringBuilder();
      builder.Append('[');
      for(int i =0; i < array.Length; i++ ) {
        if ( i > 0 ) {
          builder.Append(',');
        }
        builder.Append(array[i]);
      }
      builder.Append(']');
      return builder.ToString();
    }
    

    【讨论】:

      猜你喜欢
      • 2011-03-23
      • 2012-11-28
      • 2010-11-20
      • 2019-04-15
      • 2011-01-27
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多