using System.Collections.Generic;
public A(string name) {Name = name;}
public string Name {get;set;}
public B(string name) {Name = name;}
public string Name {get;set;}
public static void Main(string[] args)
var fields = new object[]
var fieldNames = new List<string>();
fieldNames.AddRange(fields.Select(obj => (obj as A)?.Name ?? (obj as B)?.Name));
Console.WriteLine(string.Join("\n", fieldNames));