65.9K
CodeProject is changing. Read more.
Home

Looping through Object's properties in C#

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.57/5 (5 votes)

Jun 6, 2011

CPOL
viewsIcon

141675

Looping through object's properties in C#

Have you ever tried to make a dynamic test page? To build an HTML element that contains all the properties of a specific .NET object?

Well, I encountered this problem a couple of days ago and while searching Google, I barely found good matches. So I decided that for my sake, and yours, I will simply post a short explanation about how to do it, followed by a quick and simple example of how to loop though object properties in C#.

First I'll provide a short explanation about Reflection:
Reflection enables you to discover an object's properties, methods, events and properties values at run-time.  Reflection can give you a full mapping of an object (well, it's public data).

In order to use reflection, and to loop through the object's properties, we'll first have to import the namespace:

using System.Reflection;

Now, let's say I have an object called User and this object has 2 public properties:

  1. UserID
  2. Name

My code will look something like this:

int testID = 123456; 
User usr = new User(testID); // this is constructor to get user by ID
StringBuilder sb = new StringBuilder();

PropertyInfo[] properties = user.GetType().GetProperties();
foreach (PropertyInfo pi in properties)
{
    sb.Append(
        string.Format("Name: {0} | Value: {1}", 
                pi.Name, 
                pi.GetValue(user, null)
            ) 
    );
}
divResults.InnerText = sb.ToString();

This little piece of code will fill your HTML element with the properties names and values.

Have fun!
Elad.