我有一个如下所示的对象结构:
var Results = new List<ResultObj>()
{
new ResultObj()
{
Messages = new List<MessageObj>()
{
new MessageObj()
{
Message = "message 1"
},
new MessageObj()
{
Message = "message 2"
}
}
},
new ResultObj()
{
Messages = new List<MessageObj>()
{
new MessageObj()
{
Message = "message 3"
}
}
}
}
如何使用LINQ或其他C#方法获取包含所有Message值连接在一起的单个字符串?像下面的东西
“消息1,消息2,消息3”
谢谢!
答案 0 :(得分:5)
使用String.Join
和SelectMany
:
String.Join(", ", Results.SelectMany(x=> x.Messages).Select(y => y.Message ));
答案 1 :(得分:5)
使用Enumerable.SelectMany
method展平列表,然后使用String.Join
method。
var query = Results.SelectMany(r => r.Messages)
.Select(m => m.Message);
var result = String.Join(", ", query);
答案 2 :(得分:1)
var allStrings = results.SelectMany(r => r.Messages).Select(m => m.Message);
var joined = String.Join(", ", allStrings);