首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C#中打印数组的所有内容

在C#中打印数组的所有内容
EN

Stack Overflow用户
提问于 2013-04-29 00:51:32
回答 10查看 342.3K关注 0票数 117

我试着在调用一些改变数组的方法后打印出数组的内容,在Java中我使用:

代码语言:javascript
复制
System.out.print(Arrays.toString(alg.id));

我如何在c#中做到这一点?

EN

回答 10

Stack Overflow用户

发布于 2013-04-29 00:55:17

有很多方法可以做到这一点,其他的答案都很好,这里有一个替代方案:

代码语言:javascript
复制
Console.WriteLine(string.Join("\n", myArrayOfObjects));
票数 69
EN

Stack Overflow用户

发布于 2015-04-10 17:46:19

最简单的方法,例如,如果你有一个字符串数组,声明如下: string[] myStringArray =string[] string[];

代码语言:javascript
复制
Console.WriteLine("Array : ");
Console.WriteLine("[{0}]", string.Join(", ", myStringArray));
票数 21
EN

Stack Overflow用户

发布于 2018-05-16 21:39:48

我决定测试这里发布的不同方法的速度:

这是我使用的四种方法。

代码语言:javascript
复制
static void Print1(string[] toPrint)
{
    foreach(string s in toPrint)
    {
        Console.Write(s);
    }
}

static void Print2(string[] toPrint)
{
    toPrint.ToList().ForEach(Console.Write);
}

static void Print3(string[] toPrint)
{
    Console.WriteLine(string.Join("", toPrint));
}

static void Print4(string[] toPrint)
{
    Array.ForEach(toPrint, Console.Write);
}

结果如下:

代码语言:javascript
复制
 Strings per trial: 10000
 Number of Trials: 100
 Total Time Taken to complete: 00:01:20.5004836
 Print1 Average: 484.37ms
 Print2 Average: 246.29ms
 Print3 Average: 70.57ms
 Print4 Average: 233.81ms

所以Print3是最快的,因为它只有一次对Console.WriteLine的调用,这似乎是打印出数组速度的主要瓶颈。Print4比Print2稍微快一点,而Print1是其中最慢的。

尽管Print3速度更快,但我认为Print4可能是我测试的4个中功能最多的。

如果我犯了任何错误,请随时让我知道/自己修复它们!

编辑:我将在下面添加生成的IL

代码语言:javascript
复制
g__Print10_0://Print1
IL_0000:  ldarg.0     
IL_0001:  stloc.0     
IL_0002:  ldc.i4.0    
IL_0003:  stloc.1     
IL_0004:  br.s        IL_0012
IL_0006:  ldloc.0     
IL_0007:  ldloc.1     
IL_0008:  ldelem.ref  
IL_0009:  call        System.Console.Write
IL_000E:  ldloc.1     
IL_000F:  ldc.i4.1    
IL_0010:  add         
IL_0011:  stloc.1     
IL_0012:  ldloc.1     
IL_0013:  ldloc.0     
IL_0014:  ldlen       
IL_0015:  conv.i4     
IL_0016:  blt.s       IL_0006
IL_0018:  ret         

g__Print20_1://Print2
IL_0000:  ldarg.0     
IL_0001:  call        System.Linq.Enumerable.ToList<String>
IL_0006:  ldnull      
IL_0007:  ldftn       System.Console.Write
IL_000D:  newobj      System.Action<System.String>..ctor
IL_0012:  callvirt    System.Collections.Generic.List<System.String>.ForEach
IL_0017:  ret         

g__Print30_2://Print3
IL_0000:  ldstr       ""
IL_0005:  ldarg.0     
IL_0006:  call        System.String.Join
IL_000B:  call        System.Console.WriteLine
IL_0010:  ret         

g__Print40_3://Print4
IL_0000:  ldarg.0     
IL_0001:  ldnull      
IL_0002:  ldftn       System.Console.Write
IL_0008:  newobj      System.Action<System.String>..ctor
IL_000D:  call        System.Array.ForEach<String>
IL_0012:  ret   
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16265247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档