我有一个使用C#和本机C ++(MFC)的遗留应用程序。我需要对两边的字符串进行排序,以便它们处于相同的顺序。问题是在.NET端使用string.Compare
它以“特定于文化”的方式出现,例如,“A_B”在“A11”之前排序,而在MFC中,使用operator <
,“A11”在“A_B”之前排序。
我知道我可以改变.NET端使用Ordinal排序,但这可能会打破一些外语排序。我想要的是更改MFC排序,以便它以“特定于文化”的方式排序,如.NET端。我在Win32 API中找到了CompareStringEx
,但我想知道是否有一个MFC解决方案,或者我缺少的其他东西。
提前致谢。
答案 0 :(得分:1)
MFC的CString类具有Collate
和CollateNoCase
用于特定于语言环境的比较。我没有对它们进行测试以确保它们符合.NET的整理顺序,但我期望两者都使用相同的Win32函数,在这种情况下它们显然匹配。