从对象列表中创建制表符分隔的字符串

Arc*_*ian 4 c# linq

我有一个对象列表调用Person我想从列表中创建一个制表符分隔的字符串

例:

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



List<Person> persons = new List<Persons>();

persons.add ( new person {"bob",15,"999-999-0000"} )
persons.add ( new person {"sue",25,"999-999-0000"} )
persons.add ( new person {"larry",75,"999-999-0000"} )
Run Code Online (Sandbox Code Playgroud)

我想将该列表输出到一个如下所示的字符串:

"bob\t15\t999-999-0000\r\nsue\t25\999-999-0000\r\nlarry\t75\999-999-0000\r\n"
Run Code Online (Sandbox Code Playgroud)

现在我只是要循环遍历列表,并按照旧时尚的方式逐行进行.我想知道这是否是LINQ的捷径.

Ser*_*kiy 6

使用StringBuilder聚合格式化的人员字符串.因此,您将避免在内存中创建大量字符串:

var result = persons.Aggregate(
    new StringBuilder(),
    (sb, p) => sb.AppendFormat("{0}\t{1}\t{2}\r\n", p.FirstName, p.Age, p.Phone),
    sb => sb.ToString());
Run Code Online (Sandbox Code Playgroud)