Unterschied zwischen C # - und VB.Net-String-Vergleich

Ich versuche tatsächlich zu antwortendiese Frage Da dies jedoch sehr aufwändig ist und es unwahrscheinlich ist, dass es schnell zu einer guten Reaktion kommt, werde ich versuchen, die Implementierung selbst zu erarbeiten. Das grundlegende Problem scheint zu sein, dass das C # -Beispiel, dem ich folgte, nicht direkt in VB übersetzt werden kann.

Bei der Untersuchung eines String-VergleichsBinaryExpression in einem Lambda berichtet VB dieExpression.Method.DeclaringType seinMicrosoft.VisualBasic.CompilerServices.Operators mit einem Methodennamen vonCompareString. Dies ist eindeutig VB-spezifisch.

Der Ausdruck vergleicht nurx.Content_Type <> "" und ToString darauf aufrufen, kehrt zurück{(CompareString(x.Content_Type, "", False) != 0)} - was ziemlich logisch erscheint (CompareStringdocs hier).

Kann mir jemand erklären, wie (oder noch besser, warum) VB und C # anders mit Zeichenfolgenvergleichen umgehen.

Ich denke, wenn ich eine Antwort darauf bekommen kann, sollte ich in der Lage sein, eine Lösung für das andere Problem zu finden.

Bearbeiten: Zur Verdeutlichung implementiere ich einen benutzerdefinierten LINQ-Anbieter, der Folgendes untersuchtWhere Anruf:

Query.Where(function(x) x.Content_Type <> "")

oder das C # -Äquivalent ...

query.Where(x=>x.Content_Type!="");

Soweit mir bekannt ist, sollte die 2 funktionsgleich sein

Antworten auf die Frage(2)

Ihre Antwort auf die Frage