考虑一种情况,在这种情况下,您将实现用于机器对机器通信的代码。典型的示例是在Web API操作方法中执行的代码。
假设您要在字符串之间执行完全匹配;也许您有一个用户列表,并且希望通过提供用户名来找到一个特定用户:
List<User> users = ....
const string username = "user-123";
var user = users.Find(u => string.Equals(username, u.UserName));
在这种情况下,我应该使用StringComparison.Ordinal
或StringComparison.InvariantCulture
吗?
基于我的理解,由于我想在两个字符串之间进行精确匹配,因此此处的正确选择是StringComparison.Ordinal
。
Straße
和strasse
之间的典型的文化敏感比较]示例>,由于语言规则,两个字符串被认为是相等的,在这里似乎不适合。
此假设正确吗?
如果这是正确的,您能提供一个使用不变文化的例子吗?而不是按序比较是正确的选择?
只是澄清一下,我问是因为我正在开发一个代码库,其中使用不变文化对字符串进行了大量比较。这些情况中的许多情况都引用在机器对机器通信场景中执行的精确字符串匹配
。因此,我想确保清楚了解正确选择字符串比较值的基本原理。考虑一种情况,在这种情况下,您将实现用于机器对机器通信的代码。典型的示例是在Web API操作方法中执行的代码。假设...
从细节看来,只要您的假设是正确的-您想找到名称为“ Bob”的特定用户。 “Bób”是一个不同的用户,不应匹配,即您实际上是在尝试匹配两个符号,而不是如何读取用户名。