我刚刚开始学习Linq。我刚刚创建了这样的样本测试。
Dim dt As New DataTable
Dim dc As New DataColumn
dc.ColumnName = "Test"
dt.Columns.Add(dc)
dt.Rows.Add("Test")
dt.Rows.Add("One test")
dt.Rows.Add("Second test")
Dim results = From myRow In dt.AsEnumerable
Where myRow("Test") = "Test"
Select myRow
For Each Row In results
Console.WriteLine(Row.Item(0).ToString())
Next
这将返回迭代中的第一行。
但是如果我想使用%的LIKE运算符怎么办?我无法让它发挥作用。
我试过
Where myRow("Test") LIKE "Test%"
答案 0 :(得分:3)
听起来我想要使用StartsWith,即
Dim results = From myRow In dt.AsEnumerable
Where myRow("Test").StartsWith("Test")
Select myRow
Contains
将匹配字符串中的任何位置,而StartsWith
只会匹配字符串的开头(与Test%
相同的逻辑)。
答案 1 :(得分:2)
您可能正在寻找包含。
看看这个:
var query = from mem in context.Member
where mem.LastName.Contains("xxx")
orderby mem.LastName, mem.FirstName
select new
{
FirstName = mem.FirstName,
LastName = mem.LastName,
};
您也可以使用.StartsWith()或.EndsWith()。
答案 2 :(得分:1)
您可以使用contains方法:
Dim results = From myRow In dt.AsEnumerable
Where myRow("Test").Contains("Test")
Select myRow