如何将对象列表转换为字符串列表

时间:2014-05-23 14:47:11

标签: c# linq

我有一个Person对象列表

class Person
{
    string FirstName{get;set;}
    int Age {get;set;}
}

现在在此Person对象列表中

Person1有FirstName =" Alan",Age = 20

第2个人拥有FirstName =" Josephine",年龄= 21

我需要获得一个新列表,其中每个列表项的第一个名称与年龄

连接

我需要的列表:

艾伦:20

约瑟芬:21

......等等

到目前为止,我有这个......

var PersonConcatenatedList= from p in PersonList
                            select new {firstName= p.FirstName, Age=p.Age};

错误...但现在如何输出所需的列表格式? :(

任何帮助将不胜感激。感谢

2 个答案:

答案 0 :(得分:3)

使用string.Join

var PersonConcatenatedList = PersonList
                            .Select(x => string.Join(":", x.FirstName, x.Age));

由于您需要一个字符串列表,因此不应创建任何类型的字符。简单的字符串连接也可以起作用:

PersonList.Select(x => x.FirstName + ":" + x.Age));

如果您希望输出为单个字符串,请通过string.Join使用Environment.NewLine并使用新行字符连接结果:

var output = string.Join(Environment.NewLine, PersonConcatenatedList);

答案 1 :(得分:1)

String.Join()是一种方法。但对于良好的编程,我建议实施.ToString()方法。

class Person
{
    string FirstName { get; set; }
    int Age { get; set; }

    public override string ToString()
    {
        return this.FirstName + ":" + this.Age;
    }
}

然后只需使用以下内容:

var result = personList.Select(person => person.ToString());