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)))
));