2009-02-16 11 views

cevap

7

string1 = > string2, C# LinqToSql'de desteklenmiyor veya desteklenmiyor. String sınıfı, = > operatörünü geçersiz kılmaz. Sadece! = Ve == operatörlerini geçersiz kılar. Eğer statik String.Compare(string,string) yöntemi kullanmak gerekir LinqToSQL dizeler için karşılaştırmak istiyorsanız aşağıdaki yöntemini

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

derlemek deneyerek doğrulayabilirsiniz.

+1

=> aynı değil> =, Bir temsilci ya da gerçek bir> gibi bir yöntem işaretçisinden bahsediyorsa emin değilim. –

+0

@Nick, örneğimde yazım hatası var. SO TextEditor derleyicisi korkunç;) – JaredPar

+2

Bu neden değişti? = = = =? – Davy8

0

Burada yapmaya çalıştığınızdan tam olarak emin değilim, ancak dizeler doğrudan Linq'den SQL sorgularına dönüştürülür.

Ne denediğinize dair bir örnek verebilir misiniz? İşte

temel bir örnek kullanımı:

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

I => daha neyi ya bahsediyorsun hangi dili oldukça emin değilim, ama> = (büyüktür veya kastediyoruz tahmin edebilirsiniz eşit). Dizelerden daha büyük veya eşit bir operatör kullanamazsınız, çünkü ne hakkında konuştuğunuzu anlatmanın kesin bir yolu yoktur. Onlar aslında sayıları ise yapmak isteyebilirsiniz. normalde >= olarak yazılabilir olur => arıyorsanız

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

o zaman dizeleri ile doğrudan bunu yapamaz. Sen CompareTo aracılığıyla aynı davranışı elde edebilirsiniz:

Bu durumda
string1.CompareTo(string2) >= 0 

, sonuç daha az veya sıfıra eşit olma string1string2 önce sıralama ve dolayısıyla büyüktür olacağını anlamına gelir. C# 'da => operatörüne sadece lambda ifadeleri tanımında kullanılır.

İlgili konular