10

如何在 Linq to SQL 中执行 string1 >= string2?

4

4 回答 4

29

如果您正在寻找=>通常写成的,>=那么您不能直接使用字符串执行此操作。您可以通过CompareTo获得相同的行为:

string1.CompareTo(string2) >= 0

在这种情况下,结果小于或等于 0 意味着string1将在之前排序string2,因此更大。

仅供参考=>,C# 中的运算符仅用于 lambda 表达式的定义。

于 2009-02-16T14:19:52.143 回答
8

C# Linq To Sql 不支持 string1 >= string2。String 类根本不覆盖 >= 运算符。它只覆盖 != 和 == 运算符。您可以通过尝试编译以下方法来验证这一点

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

如果您想与 LinqToSql 中的字符串进行比较,您应该能够使用静态String.Compare(string,string)方法。

于 2009-02-16T14:13:59.350 回答
-1

您不能对字符串使用大于或等于运算符,因为没有明确的方法来说明您在说什么。如果它们实际上是您可能想要做的数字。

var query = from c in dc.Customers
            where c.CustomerID >= Int32.Parse("32")
            select c;
于 2009-02-16T14:15:13.077 回答
-2

我不确定您要在这里做什么,但字符串直接转换为 Linq 到 SQL 查询。

你能举一个你正在尝试的例子吗?

这是一个基本的示例用法:

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);
}
于 2009-02-16T14:14:48.553 回答