我需要帮助,我该如何获得最大的数据表中的列值,其中值LIKE“%N01”
基本上,如果我将它转换为SQL:
SELECT MAX(user) FROM tblUser WHERE user LIKE 'N01%'
谢谢。
你可以简单地这样做:
string[] data = {"hello", "N01jaja", "N01ll"};
var userWithN1 = data.Where(we => we.StartsWith("N01")).Max();
如果该元素具有一定的字符串开始StartsWith
检查。
如果有一类则需要实现IComparable。
示例代码:
public class TestClass : IComparable<string>
{
public string Value { get; private set; }
public int CompareTo(string other) { return Value.CompareTo(other); }
}
var result = foo.tblUser.Where(u => u.user.StartsWith("N01")).Max(u => u.user));
只需使用一个where
语句来开始你的过滤器,使用StartsWith
效仿SQL的xx%
模式。然后在一个特定的列使用Max
。虽然确保User
的东西,实际上将有Max
值。
在LINQ,我总是发现它有助于打破下来的问题。在这里,在这种情况下,您有一个项目清单,要缩小该列表中有WHERE子句,并返回其余项目的MAX。
开始
var myItems = db.GetMyList();
WHERE与LIKE假设用户是一个字符串变量
myItems = myItems.Where(x=>x.User.StartsWith("N01"));
MAX
var maxItem = myItems.Max(x=>x.User);
全部一起
var maxItem = db.GetMyList().Where(x=>x.User.StartsWith("N01")).Max(x=>x.User);
编辑 - 每下面的评论,因为搜索字符串为“N01%”,是应该与启动和不包含的内容。