LINQ中的过滤问题

时间:2010-04-26 09:51:59

标签: asp.net-mvc linq

var query = from d in testPersons.person
            where d.Name == txtbox
            select d;

txtbox是查看页面上的文本框。

  

如何更改此代码以返回所有内容   以任何一部分开头的名字   命名

例如:当我在文本框中键入R时,在“查看”页面上,此查询应返回以字符R开头的所有名称

2 个答案:

答案 0 :(得分:4)

您可以使用String.StartsWith

var query = from d in testPersons.person
            where d.Name.StartsWith(txtbox)
            select d;

只要Name的类型为String,您就可以执行所有字符串操作,例如:

  • 包含
  • 的endsWith
  • 等于
  • 还有更多..

以下是有关LINQ and Strings的更多示例和信息。

答案 1 :(得分:0)

我对以下内容略有不同:

如何更改此代码以返回以名称的任何部分开头的所有名称?

如果您希望检索一个人,首先是中间名或姓氏,请使用 txtbox 中输入的字母开头,您可以使用:

var query = from d in testPersons.person
            where d.Name.StartsWith(txtbox) || d.Name.Contains(" " + txtbox)
            select d;