Join custom objects into a concatenated string in .NET C#

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.


About Andras Nemes
I'm a .NET/Java developer living and working in Stockholm, Sweden.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Elliot Balynn's Blog

A directory of wonderful thoughts

Software Engineering

Web development

Disparate Opinions

Various tidbits

chsakell's Blog


Once Upon a Camayoc

Bite-size insight on Cyber Security for the not too technical.

%d bloggers like this: