从对象列表创建一个以制表符分隔的字符串

本文关键字:分隔 字符串 制表符 一个以 对象 列表 创建 | 更新日期: 2023-09-27 17:54:02

我有一个名为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"} )

我想把这个列表输出为一个字符串,看起来像这样:

"bob't15't999-999-0000'r'nsue't25'999-999-0000'r'nlarry't75'999-999-0000'r'n"

现在我只是想循环遍历列表,用传统的方式逐行执行。

从对象列表创建一个以制表符分隔的字符串

使用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());

您可以使用字符串。加入

string str = string.Join(Environment.NewLine, person.Select(r=> r.FirstName +@"'t" +
                                    r.Age + @"'t" +
                                    r.Phone"))
persons.ForEach(q => output+=(q.firstname+"''"+q.Age.ToString()+"''"+q.Phone+"''"));