首页 > 解决方案 > 尝试在集合上使用 String.Join 不会仅列出项目集合的名称

问题描述

我所看到的每个地方似乎都有相同的响应,但我找不到一个来解决我遇到的问题。我正在尝试将对象列表中的项目连接成一个字符串。但是,我得到的是页面名称和对象名称,即实际列表值。

我试过了:

string combinedLog = string.Join(",", logList)

我也试过:

string combinedLog = string.Join(",", logList.Select(c => c.ToString()).ToArray<string>());

我得到的是PageName + Log,PageName + Log

这是对象:

    private class Log
    {
        public DateTime LogTime { get; set; }
        public string Result { get; set; }
        public string ItemName { get; set; }
        public Guid? ItemId { get; set; }
        public string ErrorMessage { get; set; }
    }

清单是:

List<Log> logList = new List<Log>();

我试图得到一个字符串,如:“2019 年 10 月 21 日,失败,Acme,无法导入,2019 年 10 月 21 日,成功,ABC,没有错误”

标签: c#.netstringlist

解决方案


您可以为此覆盖类中的ToString()方法Log

private class Log
{
    public DateTime LogTime { get; set; }
    public string Result { get; set; }
    public string ItemName { get; set; }
    public Guid? ItemId { get; set; }
    public string ErrorMessage { get; set; }

    public override string ToString()
    {
         return $"{LogTime}, {Result}, {ItemName}, {ErrorMessage}";
    }
}

而不是logList使用连接成一个字符串string.Join


推荐阅读