C # LINQ Как получить MAX столбца с данными <string>ГДЕ значение LIKE 'N01%' - PullRequest
0 голосов
/ 04 февраля 2019

Мне нужна помощь, как мне получить значение столбца MAX с датой, где значение LIKE 'N01%'

Обычно, если я преобразую это в SQL:

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

Спасибо.

Ответы [ 3 ]

0 голосов
/ 04 февраля 2019
var result = foo.tblUser.Where(u => u.user.StartsWith("N01")).Max(u => u.user));

Просто используйте оператор where для запуска фильтра, используйте StartsWith для эмуляции шаблона xx% SQL.Затем используйте Max для определенного столбца.Хотя убедитесь, что значение User действительно имеет значение Max.

0 голосов
/ 04 февраля 2019

Вы можете просто сделать это:

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 голосов
/ 04 февраля 2019

В LINQ я всегда нахожу полезным разобрать проблему.Здесь, в этом случае, у вас есть список элементов, вы хотите сузить этот список с помощью предложения WHERE и вернуть МАКС. Оставшихся элементов.

Начало

var myItems = db.GetMyList();

ГДЕ с 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);

edit - согласно комментарию ниже, поскольку строка поиска была 'N01%', она должна начинаться с, а не содержать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...