我有一个同时使用 C# 和 native C++ (MFC) 的旧版应用程序。我需要对两边的字符串进行排序,使它们的顺序相同。问题是在 .NET 端使用 string.Compare
它以“特定于文化”的方式出现,例如,“A_B”排在“A11”之前,而在 MFC 中,使用 operator <
, "A11"排在 "A_B"之前。
我知道我可以更改 .NET 端以使用序数排序,但这可能会破坏某些外语排序。我想要的是更改 MFC 排序,以便它以“特定于文化”的方式排序,就像 .NET 端一样。我找到了 CompareStringEx
在 Win32 API 中,但我想知道是否有 MFC 解决方案来解决这个问题或我遗漏的其他问题。
提前致谢。
最佳答案
MFC 的 CString 类有 Collate
和 CollateNoCase
用于特定于语言环境的比较。我没有测试它们以确保它们匹配 .NET 排序顺序,但我期望两者使用相同的 Win32 函数,在这种情况下它们显然匹配。
关于c# - 在 MFC 与 C# 中对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33527024/