【问题标题】:Unable to print whole list to console无法将整个列表打印到控制台
【发布时间】:2018-10-10 09:40:03
【问题描述】:

在控制台上打印列表时不断收到以下消息。

System.Collections.Generic.List`1[System.Int32]

这是控制台代码。它旨在生成给定长度的斐波那契数列。我曾尝试使用 ToString() 方法,但这也不起作用。我已经用 Java 构建了算法,所以我知道这个问题基本上是一个 C# 问题。如果 print 我单独打印列表元素,问题就解决了,但我不能打印整个列表。

class Program
{
    public static void Main(string[] args)
    {
        Fibonacci fibo = new Fibonacci();


        Console.WriteLine(fibo.getSequence(9));

        Console.ReadLine();
    }
}

class Fibonacci
{

    public List<int> getSequence(int length)
    {
        List<int> results = new List<int>();

        results.Add(1);
        results.Add(1);

        int counter = 0;

        while (counter != length - 2)
        {
            int num1 = results[results.Count - 1];
            int num2 = results[results.Count - 2];

            results.Add(num1 + num2);
            counter++;
        }

        return results;
    }
}

【问题讨论】:

标签: c# .net list


【解决方案1】:

您返回的是List&lt;int&gt;。要打印它,您必须例如遍历它

foreach(var i in fibo.getSequence(9)) {
    Console.WriteLine(i);
}

或者你可以使用String.Join()

Console.WriteLine(String.Join(" ", fibo.getSequence(9)));

【讨论】:

    【解决方案2】:

    您正在尝试将对象直接打印到控制台尝试迭代列表并在返回的任何位置打印它们。

    for (var item in returned) 
       Console.WriteLine(item)
    

    如果使用自定义类型。请记住,您已将其定义为字符串方法。

    【讨论】:

    • 答案如何?阿德里安的答案要完整得多。
    【解决方案3】:

    将您的 Main() 更改为:

            public static void Main(string[] args)
            {
                Fibonacci fibo = new Fibonacci();
    
                foreach(var element in fibo.getSequence(9))
                {
                     Console.WriteLine(element);
                }
    
                Console.ReadLine();
            }
    

    说明

    查看您在示例中传递给Console.WriteLine() 的内容。 getSequence() 正在返回一个列表,因此您将一个列表传递给 WriteLine()。 WriteLine 将在集合上ToString(),默认情况下,它将呈现出类型。如果您将每个单独的元素 (int) 传递给它,它会在每个元素上调用 ToString() 并给您编号。

    这是基于您希望每个元素有一行的假设。如果没有,请考虑使用String.Join

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 2013-02-05
      • 2021-02-17
      • 1970-01-01
      • 2022-10-19
      相关资源
      最近更新 更多