Why are string in .net case sensitive by default? <p>Most times I want to do string comparisons I want them to be case insensitive.</p> <p>So why are string in .net case sensitive by default?</p> <p><strong>EDIT 1:</strong> To be clear I think the below should return true by default. Or at least allow me to have a compile time flag that makes it so.</p> <pre><code>"John Smith" == "JOHN SMITH" </code></pre> <p><strong>EDIT 2:</strong> I can think of many more examples of things that should be case insensitive</p> <p>Examples of things that should be case insensitive</p> <ul> <li>Usernames</li> <li>Urls</li> <li>File extensions / File names / Directory names / Paths </li> <li>Machine / servernames</li> <li>State / Country / Location etc</li> <li>FirstName / LastName / Initials</li> <li>Guids</li> <li>Month / Day names</li> </ul> <p>Examples of things that should be case sensitive</p> <ul> <li>Passwords</li> </ul>