将System :: String ^与std :: string进行比较

时间:2012-09-14 01:25:30

标签: string c++-cli string-comparison stdstring

我有一个Generic::List(String^)^ myList和一些std::string & myValue值,我需要检查这些值是否都包含在列表中。 (我不想在列表中添加值。)

我该怎么做以代替myList->Contains(myValue)以确保我正在比较字符串的内容?

我知道我可以使用InteropServices来编组列表中的每个元素。

如果有帮助的话,我可以将Generic :: List转换为cli :: array!

由于 梅拉妮

1 个答案:

答案 0 :(得分:0)

List<T>::Contains(T)文档(C#文档,但不影响任何内容):

此方法通过使用默认的相等比较器来确定相等性,这是由对象的T的IEquatable.Equals方法的实现(列表中值的类型)定义的。

由于String::Equals(String^)会比较字符串的内容,所以只需将std::string转换为System::String^。你可以用marshal_as做到这一点,你应该做得很好。