C# 如何打印列表类型的对象<;字符串>;在C中#

C# 如何打印列表类型的对象<;字符串>;在C中#,c#,C#,我是c#新手,我想打印列表类型的对象。如何在控制台中打印此对象和显示列表? 下面是我的代码: class Program{ public List<double> GetPowersOf2(int input) { var returnList = new List<double>(); for (int i = 0; i < input + 1; i++) { returnLi

我是c#新手,我想打印列表类型的对象。如何在控制台中打印此对象和显示列表? 下面是我的代码:

class Program{
    public List<double> GetPowersOf2(int input)
    {
        var returnList = new List<double>();
        for (int i = 0; i < input + 1; i++)
        {
            returnList.Add(Math.Pow(2, i));
        }
         returnList.ForEach(Console.WriteLine);//display list from method.
        return returnList;
    }
    static void Main(String[] args)
    {
        Program p = new Program();
        Console.WriteLine(p.GetPowersOf2(2));//not display list...
    }
}
类程序{
公共列表GetPowersOf2(整数输入)
{
var returnList=新列表();
对于(int i=0;i
它给出错误:System.Collections.Generic.List`1[System.Double] 请提出解决方案。 提前谢谢

var powers=p.GetPowersOf2(2);
foreach(double power in powers) Console.Writeline(power+", ");
原始代码不起作用的原因是
.ToString()
的默认实现只是打印类的名称。只有在某些类中,才会重写此选项

如果要更改列表的
.ToString
的默认行为,则必须从
列表
派生一个类

    public class PrintableList<T> : List<T>
    {
        public override string ToString()
        {
            string result = "";
            foreach (T obj in this)
            {
                result += obj.ToString() + "\n";
            }
            return result;
        }
    }
公共类可打印列表:列表
{
公共重写字符串ToString()
{
字符串结果=”;
foreach(本文件中的目标)
{
结果+=obj.ToString()+“\n”;
}
返回结果;
}
}
在代码中使用此选项代替列表,代码将正常工作

原始代码不起作用的原因是
.ToString()
的默认实现只是打印类的名称。只有在某些类中,才会重写此选项

如果要更改列表的
.ToString
的默认行为,则必须从
列表
派生一个类

    public class PrintableList<T> : List<T>
    {
        public override string ToString()
        {
            string result = "";
            foreach (T obj in this)
            {
                result += obj.ToString() + "\n";
            }
            return result;
        }
    }
公共类可打印列表:列表
{
公共重写字符串ToString()
{
字符串结果=”;
foreach(本文件中的目标)
{
结果+=obj.ToString()+“\n”;
}
返回结果;
}
}
用它代替代码中的列表,代码就会正常工作。

使用Linq:

公共课程{

public List<double> GetPowersOf2(int input)
{
    var returnList = new List<double>();

    for (int i = 0; i < input + 1; i++)
    {
        returnList.Add(Math.Pow(2, i));
    }

    return returnList;
 }

    public static void Main(String[] args)
    {
        Program p = new Program();
        p.GetPowersOf2(2).ForEach(Console.WriteLine);
    }
}
public List getpowerso2(int输入)
{
var returnList=新列表();
对于(int i=0;i
使用Linq:

公共课程{

public List<double> GetPowersOf2(int input)
{
    var returnList = new List<double>();

    for (int i = 0; i < input + 1; i++)
    {
        returnList.Add(Math.Pow(2, i));
    }

    return returnList;
 }

    public static void Main(String[] args)
    {
        Program p = new Program();
        p.GetPowersOf2(2).ForEach(Console.WriteLine);
    }
}
public List getpowerso2(int输入)
{
var returnList=新列表();
对于(int i=0;i
因此您知道在控制台中显示列表,就像在方法中一样(
returnList.ForEach(console.WriteLine);
)。现在您将list对象返回给调用方法,而现在您不知道如何显示它,对吗?你为什么不试试同样的方法,像这样:

p.GetPowersOf2(2).ForEach(Console.WriteLine);

因为变量
returnList
是从方法返回的,所以在调用方法中肯定会收到相同的结果。

所以您知道在控制台中显示列表,就像在方法中一样(
returnList.ForEach(console.WriteLine);
)。现在您将list对象返回给调用方法,而现在您不知道如何显示它,对吗?你为什么不试试同样的方法,像这样:

p.GetPowersOf2(2).ForEach(Console.WriteLine);

因为变量
returnList
是从方法返回的,所以在调用方法中肯定会收到相同的结果。

不要返回列表,只需这样调用它:

class Program{
    public void GetPowersOf2(int input)
    {
        var returnList = new List<double>();
        for (int i = 0; i < input + 1; i++)
        {
            returnList.Add(Math.Pow(2, i));
        }
         returnList.ForEach(Console.WriteLine);//display list from method.
        //return returnList;
    }
    static void Main(String[] args)
    {
        Program p = new Program();
        p.GetPowersOf2(2);
    }
}
class Program{
    public List<double> GetPowersOf2(int input)
    {
        var returnList = new List<double>();
        for (int i = 0; i < input + 1; i++)
        {
            returnList.Add(Math.Pow(2, i));
        }
         //returnList.ForEach(Console.WriteLine);//display list from method.
        return returnList;
    }
    static void Main(String[] args)
    {
        Program p = new Program();
        p.GetPowersOf2(2).ForEach(Console.WriteLine);//not display list...
    }
}
类程序{
公共无效GetPowersOf2(整数输入)
{
var returnList=新列表();
对于(int i=0;i
或者像这样退回:

class Program{
    public void GetPowersOf2(int input)
    {
        var returnList = new List<double>();
        for (int i = 0; i < input + 1; i++)
        {
            returnList.Add(Math.Pow(2, i));
        }
         returnList.ForEach(Console.WriteLine);//display list from method.
        //return returnList;
    }
    static void Main(String[] args)
    {
        Program p = new Program();
        p.GetPowersOf2(2);
    }
}
class Program{
    public List<double> GetPowersOf2(int input)
    {
        var returnList = new List<double>();
        for (int i = 0; i < input + 1; i++)
        {
            returnList.Add(Math.Pow(2, i));
        }
         //returnList.ForEach(Console.WriteLine);//display list from method.
        return returnList;
    }
    static void Main(String[] args)
    {
        Program p = new Program();
        p.GetPowersOf2(2).ForEach(Console.WriteLine);//not display list...
    }
}
类程序{
公共列表GetPowersOf2(整数输入)
{
var returnList=新列表();
对于(int i=0;i
不要返回列表,只需这样称呼它:

class Program{
    public void GetPowersOf2(int input)
    {
        var returnList = new List<double>();
        for (int i = 0; i < input + 1; i++)
        {
            returnList.Add(Math.Pow(2, i));
        }
         returnList.ForEach(Console.WriteLine);//display list from method.
        //return returnList;
    }
    static void Main(String[] args)
    {
        Program p = new Program();
        p.GetPowersOf2(2);
    }
}
class Program{
    public List<double> GetPowersOf2(int input)
    {
        var returnList = new List<double>();
        for (int i = 0; i < input + 1; i++)
        {
            returnList.Add(Math.Pow(2, i));
        }
         //returnList.ForEach(Console.WriteLine);//display list from method.
        return returnList;
    }
    static void Main(String[] args)
    {
        Program p = new Program();
        p.GetPowersOf2(2).ForEach(Console.WriteLine);//not display list...
    }
}
类程序{
公共无效GetPowersOf2(整数输入)
{
var returnList=新列表();
对于(int i=0;i
或者像这样退回:

class Program{
    public void GetPowersOf2(int input)
    {
        var returnList = new List<double>();
        for (int i = 0; i < input + 1; i++)
        {
            returnList.Add(Math.Pow(2, i));
        }
         returnList.ForEach(Console.WriteLine);//display list from method.
        //return returnList;
    }
    static void Main(String[] args)
    {
        Program p = new Program();
        p.GetPowersOf2(2);
    }
}
class Program{
    public List<double> GetPowersOf2(int input)
    {
        var returnList = new List<double>();
        for (int i = 0; i < input + 1; i++)
        {
            returnList.Add(Math.Pow(2, i));
        }
         //returnList.ForEach(Console.WriteLine);//display list from method.
        return returnList;
    }
    static void Main(String[] args)
    {
        Program p = new Program();
        p.GetPowersOf2(2).ForEach(Console.WriteLine);//not display list...
    }
}
类程序{
公共列表GetPowersOf2(整数输入)
{
var returnList=新列表();
对于(int i=0;i
尝试一个简单的Linq并
加入
ou