2009-02-16 22 views

Trả lời

7

string1 = > string2 không được hỗ trợ trong C# LinqToSql hay không. Lớp String không ghi đè lên toán tử = >. Nó chỉ ghi đè các toán tử! = Và ==. Bạn có thể xác minh điều này bằng cách cố gắng để biên dịch các phương pháp sau đây

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

Nếu bạn muốn so sánh để Strings trong LinqToSql bạn sẽ có thể sử dụng phương pháp String.Compare(string,string) tĩnh.

+1

=> không giống như> =, tôi không chắc liệu anh ta có đang nói về con trỏ phương thức như trong đại biểu hay thực tế> =. –

+0

@Nick, đó là lỗi đánh máy trong ví dụ của tôi. Trình biên dịch SO TextEditor là khủng khiếp;) – JaredPar

+2

Tại sao điều này đã thay đổi từ> = thành =>? – Davy8

0

Tôi không chắc chắn chính xác những gì bạn đang cố gắng làm ở đây, nhưng chuỗi trực tiếp dịch sang các truy vấn LINQ to SQL.

Bạn có thể cho ví dụ về những gì bạn đang cố gắng không?

Dưới đây là một cách sử dụng ví dụ cơ bản:

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

Tôi không khá chắc chắn => hơn là những gì hay những gì ngôn ngữ mà bạn đang nói đến, nhưng tôi chỉ có thể đoán bạn đang đề cập đến> = (lớn hơn hoặc công bằng). Bạn không thể sử dụng toán tử lớn hơn hoặc bằng nhau với các chuỗi, bởi vì không có cách dứt khoát để cho biết bạn đang nói về cái gì. Nếu họ thực sự là số bạn có thể muốn làm.

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

Nếu bạn đang tìm kiếm => mà thông thường sẽ được viết như >= thì bạn không thể làm điều này trực tiếp với chuỗi. Bạn có thể nhận hành vi tương tự qua CompareTo:

string1.CompareTo(string2) >= 0 

Trong trường hợp này, kết quả là nhỏ hơn hoặc bằng số không có nghĩa là string1 sẽ được sắp xếp trước string2 và do đó là lớn hơn.

FYI toán tử => trong C# chỉ được sử dụng trong định nghĩa biểu thức lambda.

Các vấn đề liên quan