Let say I have class:

```
public class TestClass
{
    public string Prop1 { get; set; }
    public int Field1 = 1234567890;
    public string Method1() { return "ABCDEFGHIJKLMNOPQRSTUVXYZ"; }
}

```

... class instance and list:

```
TestClass TC = new TestClass();    
List<object> TCValues = new List<object>();

```

... and populate the list with values in loop:

```
        foreach (var v in TC.GetType().GetProperties()) // or .GetFields()
        {
            TCValues.Add(v.GetValue(TC, null));                
        }

```

... problem is that in my particular case I need to get list of all class members first, then filter them to properties and fields (ignoring methods of course) and then read their values as I did in first example:

```
        foreach (var v in TC.GetType().GetMembers())
        {
            if (v.MemberType == System.Reflection.MemberTypes.Property || v.MemberType == System.Reflection.MemberTypes.Field)
            {
                TCValues.Add(v.?????????); // Can't get values !
            }
        }

```

... I understand that `GetMembers()` returns class `MemberInfo` which unlike `PropertyInfo` and `FieldInfo` doesn't contain method `GetValue()`. Is there any way to read values from filtered property and field members inside the loop iterating through `MemberInfo` collection ?