using System.Collections.Generic;
public enum FilterDataType
public FilterDataType DataType { get; set; }
private FilterDataType _dataType { get; set; }
get => _dataType.ToString();
set => _dataType = Enum.Parse<FilterDataType>(value);
public static readonly HashSet<string> ValidDataTypes = new (){ "String", "Number", "Boolean", "Date", "Null", "Filter" };
private string _dataType { get; set; }
if (ValidDataTypes.Contains(value))
throw new Exception($"Invalid DataType: {value} is not a valid DataType.");
public static void Main()
x.DataType = FilterDataType.String;
Console.WriteLine($"Enum: {x.DataType}");
Console.WriteLine($"JSON: {JsonSerializer.Serialize(x)}");
var start = DateTime.Now;
for (int i = 0; i < 100000; i++) {
var duration = DateTime.Now - start;
Console.WriteLine($"Converted Enum: {y.DataType}");
Console.WriteLine($"JSON: {JsonSerializer.Serialize(y)}");
Console.WriteLine($"Duration: {duration}");
var start2 = DateTime.Now;
for (int i = 0; i < 100000; i++) {
var duration2 = DateTime.Now - start2;
Console.WriteLine($"List<string> lookup: {z.DataType}");
Console.WriteLine($"JSON: {JsonSerializer.Serialize(z)}");
Console.WriteLine($"Duration: {duration2}");