在列表中打印数组

时间:2016-12-16 11:22:18

标签: c#

我已经创建了一个列表,并且在该列表中我已经设法复制了一个数组,现在我想要打印整个列表,而我只得到消息“System.String []”,因为我猜它尝试打印数组本身而不是数组内的所有内容。

我该怎么做?

<tag someattr="123>456" type="findMe">

案例1:

List<string[]> loggBoken = new List<string[]>();

以下是无效的代码:

string[] post = new string[2];
post[0] = Console.Readline()
post[1] = Console.ReadLine();
loggBoken.Add(post.ToArray()); 

3 个答案:

答案 0 :(得分:2)

有几种方法:

两个循环:

  foreach (string[] line in loggBoken)  {
    foreach(string item in line) {
      Console.Write(item);
      Console.Write('\t');
    }

    Console.WriteLine();
  }

一个循环,一个Join

  foreach (string[] line in loggBoken)  
    Console.WriteLine(string.Join("\t", line)); 

没有循环,两个Join s(以及 Linq ):

  Console.Write(string.Join(Environment.NewLine, loggBoken
    .Select(line => string.Join("\t", line))));

答案 1 :(得分:0)

在原始代码中,您可以获得输出:

  

“System.String []”

因为Console.WriteLine在内部调用ToString方法(继承自Object类)。此方法默认打印对象类型的全名。在您的情况下,它是string[],它是命名空间System的居民,因此:System.String[]

有一种名为String.Join()的漂亮方法可以一键打印集合中的所有元素:

foreach (string[] item in loggBoken) 
{
    Console.WriteLine(String.Join("\t", item)); 
}

答案 2 :(得分:0)

Vector[11]
 > Float64[2]
 > Float64[2]
 > Float64[2]
 > Float64[2]
  .
  .
  .