C#LINQ如何获得数据表列的MAX WHERE值LIKE '%N01'

问题描述 投票:-2回答:3

我需要帮助,我该如何获得最大的数据表中的列值,其中值LIKE“%N01”

基本上,如果我将它转换为SQL:

SELECT MAX(user) FROM tblUser WHERE user LIKE 'N01%'

谢谢。

c# sql linq
3个回答
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); }
}

0
投票
var result = foo.tblUser.Where(u => u.user.StartsWith("N01")).Max(u => u.user));

只需使用一个where语句来开始你的过滤器,使用StartsWith效仿SQL的xx%模式。然后在一个特定的列使用Max。虽然确保User的东西,实际上将有Max值。


-1
投票

在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%”,是应该与启动和不包含的内容。

© www.soinside.com 2019 - 2024. All rights reserved.