2009-02-16 3 views

Antwort

7

string1 = > string2 wird in C# LinqToSql nicht unterstützt oder nicht. Die String-Klasse überschreibt den Operator = > überhaupt nicht. Es überschreibt nur die Operatoren! = Und ==. Sie können dies überprüfen, indem Sie versuchen, die folgende Methode

public static void Example() { 
    int val = "foo" => "bar"; 
} 

zu kompilieren Wenn Sie in LinqToSql zu Strings vergleichen wollen, sollten Sie in der Lage sein, die statische String.Compare(string,string) Methode zu verwenden.

+1

=> ist nicht das gleiche wie> =, ich bin mir nicht sicher, ob er über einen Methodenzeiger wie in einem Delegaten oder einem tatsächlichen> = spricht. –

+0

@Nick, es ist ein Tippfehler in meinem Beispiel. Der SO TextEditor Compiler ist schrecklich;) – JaredPar

+2

Warum wurde das von> = auf => geändert? – Davy8

0

Ich bin mir nicht genau sicher, was Sie hier versuchen, aber Zeichenfolgen übersetzen direkt in Linq zu SQL-Abfragen.

Können Sie ein Beispiel dafür geben, was Sie versuchen?

Hier ist ein einfaches Beispiel Nutzung:

string string2 = "test"; 

using (MyDataContext dc = new MyDataContext()) 
{ 
    // without lambdas 
    var query1 = from item in dc.Items 
       where item.Value == string2 
       select item; 

    // with lambdas 
    var query2 = dc.Items.Where(item=>item.string1 == string2); 
} 
1

Ich bin nicht ganz sicher, was => als oder welche Sprache über Sie sprechen, aber ich kann nur raten Sie> = beziehen (größer als oder gleich). Sie können keinen Größer-oder-Gleich-Operator mit Strings verwenden, da es keine definitive Möglichkeit gibt, zu sagen, worüber Sie sprechen. Wenn sie tatsächlich Zahlen sind, möchten Sie vielleicht tun.

var query = from c in dc.Customers 
      where c.CustomerID >= Int32.Parse("32") 
      select c; 
19

Wenn Sie nach => suchen, die normalerweise als >= geschrieben werden würde, dann können Sie dies nicht direkt mit Streichern. Sie können das gleiche Verhalten über CompareTo erhalten:

string1.CompareTo(string2) >= 0 

In diesem Fall ist das Ergebnis kleiner als oder gleich Null bedeutet, dass string1 vor string2 sortiert werden würde und daher größer.

FYI Der Operator => in C# wird nur in der Definition von Lambda-Ausdrücken verwendet.