在C#对象结构中连接字符串

时间:2011-11-23 13:18:05

标签: c# linq

我有一个如下所示的对象结构:

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”

谢谢!

3 个答案:

答案 0 :(得分:5)

使用String.JoinSelectMany

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);
相关问题