有没有一种方法可以转储(显示所有内容)List<;T>;到C#中的控制台

本文关键字:lt List gt 控制台 方法 一种 有没有 显示 转储 | 更新日期: 2023-09-27 17:57:32

我的代码中有一个List。

        var config = configRepository
            .ODataQueryable()
            .ToList();
        // looking for a way to send the data in variable config to the Console here
        Console.ReadLine();

我想在C#应用程序的控制台上查看此列表。是有一种方法,我可以把这个转储到控制台必须在循环中手动编码?

更新:

我在这里尝试了一些方法,它们为我提供了四行:

Entities.Models.Core.Config
Entities.Models.Core.Config
Entities.Models.Core.Config
Entities.Models.Core.Config

有人有任何建议更新吗。这个列表似乎是一个对象列表。感谢

有没有一种方法可以转储(显示所有内容)List<;T>;到C#中的控制台

您应该能够简单地(通过方法分组)使用:

config.ForEach(Console.WriteLine);

这还假设列表中的对象适当地覆盖ToString,以便它们显示有意义的内容。

编辑:

你得到这个的原因:

Entities.Models.Core.Config
Entities.Models.Core.Config
Entities.Models.Core.Config
Entities.Models.Core.Config

是因为默认情况下,ToString打印对象的全名。您的Config类需要重写ToString方法。有点像这样:

public class Config {
    public string SomeSetting { get; set; }
    public override string ToString() {
        return string.Format("SomeSetting = {0}", SomeSetting);
    }
}

在LINQ:中

config.ForEach(c => Console.WriteLine(c.ToString());
Console.Write(string.Join("'n",config.Select(elem=>elem.ToString())));

这可能会对您有所帮助:

list.ForEach(i => Console.Write("{0}'t", i));

取自

Console.WriteLine和通用列表

ObjectDumper类可用于VS Samples:

C: ''Program Files(x86)''Microsoft Visual Studio 10.0''Samples''1033''CSharpSamples''linqSamples。

然后使用:

ObjectDumper.Write(MyList);

打印通用对象属性的一个非常简单的方法:

private string PrintObject<T>(T o)
{
    return o.GetType().GetProperties().Aggregate("", (current, p) => current + string.Format("{0}:'t{1}'n", p.Name, o.GetType().GetProperty(p.Name).GetValue(o)));
}

尝试

foreach(var c in config) { PrintObject(c); }