I have a class as shown below.

```
public class MyClass
{
    public DateTime Date
    { get; set;}

    public double Col1
    { get; set;}

    public double Col2
    { get; set;}

    public double Col3
    { get; set;}

```

And I have a list of values in the

```
Dictionary<string, double> Items 
Items["AA", 23.56] // these AA, BB values will change. 
Items["BB", 15.456] etc

```

and I want to set the value of properties of the MyClass. Is this possible as shown below:

```
MyClass obj = new MyClass();
int i = 0;

foreach (KeyValuePair<string, double> entry in items)
{
    // take the first property (Col1) and assign the value.
    obj[i] = entry.value;   // is this possible
    i++;
}

```

OR

Here I am iterating through the class properties using reflection and find each value from the Dictionary then assign it to the Myclass property.

```
MyClass obj = new MyClass();
PropertyInfo[] properties = typeof(MyClass).GetProperties();
foreach (PropertyInfo property in properties)
{
    var value = // take the value from Dictionary.
    property.SetValue(obj, value);
}

```

The aim of the question is to set the value of MyClass's properties at run time. I dont know how many items will be present in the Dictionary in advance. Finally it will be like,

```
       MyClass obj = new MyClass();
       obj.Col1 = 23.56 // value of AA
       obj.Col2 = 15.456 // value of BB
       obj.Col3 = 100.23 // value of CC...it goes like this.

```

Is this possible? If yes, how?