crozone / FormatWith

String extensions for named parameterized string formatting.
MIT License
73 stars 13 forks source link

Allow passing in StringComparer or StringComparison for object based lookups #30

Open crozone opened 3 years ago

crozone commented 3 years ago

Preface

It is currently possible to change the key equality behaviour when passing in a lookup Dictionary<string, T> by specifying a specific StringComparer in the dictionary constructor. This is passed into the dictionary constructor as an IEqualityComparer<string>, allowing the user to set this before calling .FormatWith.

For example:

var formatted = template.FormatWith(new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
    ["key1"] = value1
});

However, when using the object based lookup (eg with an anonymous type), the key lookup behaviour is specified internally and there is no way for the user to specify the StringComparer or StringComparison kind.

Tasks