ArrayList
реализует IList
, поэтому все, что вам нужно сделать, это получить соответствующий объект PropertyInfo
(foo.GetType().GetProperty("...")
), получить его значение (propertyInfo.GetValue(foo, null)
), привести его к IList
иAdd()
как хочешь.