2012-09-14 2 views
0

나는 Generic::List(String^)^ myList 값과 일부 std::string & myValue 값을 가지고 있으므로 값이 모두 목록에 있는지 확인해야합니다. (목록에 값을 추가하고 싶지 않습니다.)System :: String ^을 std :: string과 비교하십시오.

myList->Contains(myValue) 대신 문자열의 내용을 비교하려면 어떻게해야합니까?

InteropServices를 사용하여 목록의 각 요소를 마샬링 할 수 있음을 알고 있습니다.

Generic :: List를 cli :: array로 변환하면 도움이 될 것입니다.

감사 멜라니

+0

문자열을 다른 인코딩으로 비교하는 것은 재미있는 일입니다. 때로는 다른 문자가 동등한 것으로 간주됩니다. 목록에 비 ASCII 문자가 포함되는지 여부를 알고 있습니까? –

답변

0
List<T>::Contains(T) 문서에서

(C#을 문서,하지만 그 영향을주지 않습니다 아무것도) :

객체의 구현에 의해 정의 된이 방법은, 기본 같음 비교를 사용하여 평등을 결정한다 T (목록의 값 유형)에 대한 IEquatable.Equals 메소드

String::Equals(String^)는 문자열의 내용을 비교하기 때문에, 필요한 모두가 System::String^std::string 변환된다. 너는 marshal_as으로 그렇게 할 수 있고 너는 잘되어야한다.

관련 문제