Start here. This is the direct spoken answer to practice first.
Why this question matters
String equality is part of a collection's contract, and technical identity usually needs different semantics from human-facing language and ordering.
For machine identifiers such as route names, header names where the protocol defines rules, or normalized codes, I usually choose an ordinal comparer. For user-facing language-aware sorting or search, I use an appropriate culture-aware comparison. Case sensitivity is a separate decision from culture.