Join custom objects into a concatenated string in .NET C#
November 11, 2016 Leave a comment
Say you have the following Customer object with an overridden ToString method:
public class Customer { public int Id { get; set; } public string Name { get; set; } public string City { get; set; } public override string ToString() { return string.Format("Id: {0}, name: {1}, city: {2}", Id, Name, City); } }
…and the following container of Customer objects:
IEnumerable<Customer> customers = new List<Customer>() { new Customer(){Id = 1, Name = "Nice customer", City = "London"} , new Customer(){Id = 2, Name = "Great customer", City = "Los Angeles"} , new Customer(){Id = 3, Name = "New customer", City = "Tokyo"} , new Customer(){Id = 4, Name = "Old customer", City = "Shangai"} };
Suppose you’d like to build a pipe-delimited string representation of the customers list. The static generic String.Join method helps you with that:
string concatenatedCustomers = string.Join<Customer>("|", customers);
This is what ‘concatenatedCustomers’ looks like:
Id: 1, name: Nice customer, city: London|Id: 2, name: Great customer, city: Los Angeles|Id: 3, name: New customer, city: Tokyo|Id: 4, name: Old customer, city: Shangai
In C#6 you’ll be able to perform string interpolation instead. Check out this link for more information on that topic.
View all various C# language feature related posts here.