private static void Add(Dictionary <string, List <ColumnInfo> > map, ColumnRole role, ColumnInfo info)
        {
            Contracts.AssertValue(map);
            Contracts.AssertNonEmpty(role.Value);
            Contracts.AssertValue(info);

            if (!map.TryGetValue(role.Value, out var list))
            {
                list = new List <ColumnInfo>();
                map.Add(role.Value, list);
            }
            list.Add(info);
        }