using System.Collections.Generic;
using System.Linq.Dynamic.Core;
public record DataRecord(List<Dictionary<string, string>> ListOfDictionaries, Dictionary<string, string> FirstDict, List<string> ListOfKeys);
public static void Main()
var dataList = new List<Dictionary<string, string>>
var data = new DataRecord(dataList, dataList[0], dataList.SelectMany(d => d.Keys).ToList());
TestQuery(data, "FirstDict.ContainsKey(\"test\")");
TestQuery(data, "ListOfKeys.Any(x => x.Contains(\"test\"))");
TestQuery(data, "ListOfDictionaries.Any(it.ContainsKey(\"test\"))");
TestQuery(data, "ListOfDictionaries.Any(ContainsKey(\"test\"))");
TestQuery(data, "ListOfDictionaries.Any(x => x.ContainsKey(\"test\"))");
private static void TestQuery(DataRecord data, string expression)
var queryableDataRecord = new[]
var result = queryableDataRecord.Any(expression);
System.Console.WriteLine($"{result}: {expression}");
System.Console.WriteLine($"ERROR: {expression} >> [{e}]");