using System.Collections.Generic;
using System.Runtime.Serialization;
public static void Main()
Console.WriteLine("Hello World");
Console.WriteLine($"Configure Mapper");
var config = new MapperConfiguration(cfg =>
cfg.CreateMap<State, string>().ConvertUsing(src => src.ToString());
Console.WriteLine($"Create Mapper");
var mapper = config.CreateMapper();
Console.WriteLine($"Null As String: {null}");
var mappedNone = mapper.Map<State?,string>(State.None);
Console.WriteLine($"Mappd None as String: {mappedNone}");
List<ClassTest> classTest = new List<ClassTest>();
classTest.Add(new ClassTest(){State = null, Name = "Null 1"});
classTest.Add(new ClassTest(){State = "Fail", Name = "Fail 2"});
classTest.Add(new ClassTest(){State = "Pass", Name = "Pass 1"});
classTest.Add(new ClassTest(){State = "Pass", Name = "Pass 2"});
classTest.Add(new ClassTest(){State = "Fail", Name = "Fail 1"});
var filter = new List<State>(){State.None, State.Pass};
List<string> mappedStrings = mapper.Map<List<string>>(filter);
foreach(var state in mappedStrings.ToList())
Console.WriteLine($"Automapped Filters: {state}");
var statesAsStrings = filter.Select(state => state.ToString()).ToList();
statesAsStrings.Add(null);
foreach(var state in statesAsStrings.ToList())
Console.WriteLine($"Filters: {state}");
var result = classTest.Where(x => statesAsStrings.Contains(x.State));
foreach(var test in result.ToList())
Console.WriteLine($"Name: {test.Name}, State: {test.State}");
[EnumMember(Value = null)]
[EnumMember(Value = "Pass 2")]
[EnumMember(Value = "Fail 2")]
public string State {get;set;}
public string Name {get;set;}