不是对你问题的真正回答,只是小小的吹毛求疵,太长了,无法发表评论。
一小群字符转换成小写时,不能往返。
这在希腊文化中当然是有效的,但在使用不变文化时不适用。在不变的区域性字母中,“+”、“,”根本不大写(参见下面的示例)。
[TestMethod]
public void GreekRho_ToUpper_ToLower_InvariantCulture()
{
var original = "ϱ";
var upper = original.ToUpperInvariant();
var lower = upper.ToLowerInvariant();
Assert.AreEqual(original, lower);
}
[TestMethod]
public void GreekRho_ToUpper_ToLower_GreekCulture()
{
var greek = CultureInfo.CreateSpecificCulture("el-GR");
var original = "ϱ";
var upper = original.ToUpper(greek);
var lower = upper.ToLower(greek);
Assert.AreNotEqual(original, lower);
}