C# 试图使用字符串。集合上的联接不仅列出集合名称中的项

C# 试图使用字符串。集合上的联接不仅列出集合名称中的项,c#,.net,string,list,C#,.net,String,List,我看的每一个地方似乎都有相同的反应,但我找不到一个能解决我面临的问题的答案。我正在尝试将对象列表中的项连接到字符串中。但是,我得到的是页面的名称和对象的名称,以及实际的列表值 我试过: string combinedLog = string.Join(",", logList) 我还尝试: string combinedLog = string.Join(",", logList.Select(c => c.ToString()).ToArray<string>()); 名

我看的每一个地方似乎都有相同的反应,但我找不到一个能解决我面临的问题的答案。我正在尝试将对象列表中的项连接到字符串中。但是,我得到的是页面的名称和对象的名称,以及实际的列表值

我试过:

string combinedLog = string.Join(",", logList)
我还尝试:

string combinedLog = string.Join(",", logList.Select(c => c.ToString()).ToArray<string>());
名单如下:

List<Log> logList = new List<Log>();
List logList=new List();
我试图得到一个字符串,如: “2019年10月21日,失败,Acme,无法导入,2019年10月21日,成功,ABC,无错误”

您可以在
Log
类中重写该方法

私有类日志
{
公共日期时间日志时间{get;set;}
公共字符串结果{get;set;}
公共字符串ItemName{get;set;}
公共Guid?ItemId{get;set;}
公共字符串错误消息{get;set;}
公共重写字符串ToString()
{
返回$“{LogTime},{Result},{ItemName},{ErrorMessage}”;
}
}

然后使用
string将
logList
连接成一个字符串 String.Join(“;”,logList.Select(x=>$”{x.LogTime},{x.Result},{x.ItemName}”)

或者使用泛型来获得它

var fields = typeof(Log).GetFields();
var result = String.Join(";", logList.Select(x => 
                 String.Join(",", fields.Select(f => f.GetValue(x)))
             ));

您希望从
Log
类中获得单个属性还是所有属性的组合
ToString
默认情况下不执行后者,因此您需要定义如何将
Log
实例表示为字符串。@DStanley换句话说,我希望列表中的每个对象(2019年10月21日,失败,Acme,无法导入)。
var fields = typeof(Log).GetFields();
var result = String.Join(";", logList.Select(x => 
                 String.Join(",", fields.Select(f => f.GetValue(x)))
             ));