利用字串的StartsWith,EndsWith,Contains,讓LINQ有像sql指令like的功能
在小喵的blog裡有一篇文章,有人問到vb.net 和 c# 的LINQ寫法有一點不同
LINQ to Object初體驗(使用物件取代二維陣列作資料篩選)
小弟去網路找了一下資料...在C#的 like 其實有一個方法可以用
SqlMethods.Like的方法
在System.Data.Linq.SqlClient命名空間裡
參考網址:C#3.0入门系列(十一)-之In, Like操作
小弟做了一個使用string的StartsWith,EndsWith,Contains來達到like的功能
asp.net(c#)
環境:Visual Studio 2008 , .NET Framework 3.5
01
using System;
02
using System.Collections;
03
using System.Configuration;
04
using System.Data;
05
using System.Linq;
06
using System.Web;
07
using System.Web.Security;
08
using System.Web.UI;
09
using System.Web.UI.HtmlControls;
10
using System.Web.UI.WebControls;
11
using System.Web.UI.WebControls.WebParts;
12
using System.Xml.Linq;
13
using System.Collections.Generic;
14
using System.Data.Linq.SqlClient;
15
16
public partial class LinqTest : System.Web.UI.Page
17
{
18
protected void Page_Load(object sender, EventArgs e)
19
{
20
//文字資料庫
21
string[] StrDB = { "Puma", "BlueShop", "Microsoft", "Linq","Ling","Luma" };
22
23 //like "Li%"
24
IEnumerable<string> StrSelete = from str in StrDB where str.StartsWith("Li") orderby str select str;
25
/*
26
result:
27
Ling
28
Linq
29
*/
30
31 //like "%ma"
32
//IEnumerable<string> StrSelete = from str in StrDB where str.EndsWith("ma") orderby str select str;
33
/*
34
result:
35
Luma
36
Puma
37
*/
38
39 //like "%i%"
40
//IEnumerable<string> StrSelete = from str in StrDB where str.Contains("i") orderby str select str;
41
/*
42
result:
43
Ling
44
Linq
45
Microsoft
46
*/
47
48 //列出查詢結果
49
foreach (string item in StrSelete)
50
{
51
Response.Write(item + "<br/>");
52
}
53
}
54
}
using System;02
using System.Collections;03
using System.Configuration;04
using System.Data;05
using System.Linq;06
using System.Web;07
using System.Web.Security;08
using System.Web.UI;09
using System.Web.UI.HtmlControls;10
using System.Web.UI.WebControls;11
using System.Web.UI.WebControls.WebParts;12
using System.Xml.Linq;13
using System.Collections.Generic;14
using System.Data.Linq.SqlClient;15

16
public partial class LinqTest : System.Web.UI.Page17
{18
protected void Page_Load(object sender, EventArgs e)19
{20
//文字資料庫21
string[] StrDB = { "Puma", "BlueShop", "Microsoft", "Linq","Ling","Luma" };22

23 //like "Li%"
24
IEnumerable<string> StrSelete = from str in StrDB where str.StartsWith("Li") orderby str select str;25
/*26
result:27
Ling28
Linq29
*/30

31 //like "%ma"
32
//IEnumerable<string> StrSelete = from str in StrDB where str.EndsWith("ma") orderby str select str;33
/*34
result:35
Luma36
Puma37
*/38

39 //like "%i%"
40
//IEnumerable<string> StrSelete = from str in StrDB where str.Contains("i") orderby str select str;41
/*42
result:43
Ling44
Linq45
Microsoft46
*/47

48 //列出查詢結果
49
foreach (string item in StrSelete)50
{51
Response.Write(item + "<br/>");52
}53
}54
}
using