[C#] Inconsistent String Comparisons in Schema Field Retrieval Methods
- Dominant language
- C++
- Stars
- 17.1k
- Forks
- 4.3k
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 88
Description
In the Schema class, there are three methods used to retrieve individual fields:
```csharp
public class Schema
{
// ...
public Field GetFieldByName(string name) => FieldsLookup[name].FirstOrDefault();
public int GetFieldIndex(string name, StringComparer comparer)
{
IEqualityComparer equalityComparer = (IEqualityComparer)comparer;
return GetFieldIndex(name, equalityComparer);
}
public int GetFieldIndex(string name, IEqualityComparer comparer = default)
{
// Implementation using the specified comparer
}
}
```
The first method (GetFieldByName) use the default string comparer, while the latter two (GetFieldIndex overloads) are using a culture aware comparator by default (`StringComparer.CurrentCulture`). This inconsistency can be confusing, as it is unclear when custom comparers are utilized.
### Component(s)
C#
Contributor guide
Assessment
This issue has not been assessed yet.