AdventOfCode/Advent Of Code Library/Shared/AnswerableListBuilder.cs

27 lines
793 B
C#

using System.Reflection;
namespace AdventOfCodeLibrary.Shared
{
public class AnswerableListBuilder
{
public static IEnumerable<IAnswerable> AnswerableList()
{
Type type = typeof(IAnswerable);
IEnumerable<IAnswerable?> instances =
Assembly.GetExecutingAssembly().GetTypes()
.Where(t =>
t.GetInterfaces().Contains(type) &&
t.GetConstructor(Type.EmptyTypes) != null
)
.Select(t => Activator.CreateInstance(t) as IAnswerable)
.Where(i => i != null);
// try to filter null
var noneNull = instances.Where(i => i != null);
return new List<IAnswerable>();
}
}
}