我需要帮助,如何获得MAX datatable列值,其中值LIKE'N01%'
基本上,如果我将其转换为SQL:
SELECT MAX(user) FROM tblUser WHERE user LIKE 'N01%'
谢谢。
答案 0 :(得分:0)
var result = foo.tblUser.Where(u => u.user.StartsWith("N01")).Max(u => u.user));
只需使用where
语句来启动过滤器,然后使用StartsWith
来模拟SQL的xx%
模式。然后在特定列上使用Max
。尽管请确保User
实际上是一个Max
值。
答案 1 :(得分:0)
您可以简单地执行以下操作:
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); }
}
答案 2 :(得分:-1)
在LINQ中,我总能找到解决问题的方法。在这种情况下,这里有一个项目列表,您想使用WHERE子句来缩小列表范围,并返回剩余项目的MAX。
开始
var myItems = db.GetMyList();
喜欢的地方 假设用户是一个字符串变量
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);
edit -由于搜索字符串为'N01%',因此下面的每个注释都应以开头,而不包含。