using System.Collections.Generic;
public static void Main()
var fields = sut.ReturnCustomFieldsOnly();
Console.WriteLine("Before");
foreach(var field in fields)
Console.WriteLine(field.Name);
Console.WriteLine("\nAfter");
fields = sut.ReturnAllFields();
foreach(var field in fields)
Console.WriteLine(field.Name);
public IEnumerable<Type> BaseMethod()
yield return typeof(field1);
yield return typeof(field2);
yield return typeof(field3);
public IEnumerable<Type> ReturnCustomFieldsOnly()
yield return typeof(field4);
yield return typeof(field5);
public IEnumerable<Type> ReturnAllFields()
yield return typeof(field4);
yield return typeof(field5);
foreach (var baseField in BaseMethod())
public abstract class field1 {}
public abstract class field2 {}
public abstract class field3 {}
public abstract class field4 {}
public abstract class field5 {}