Ошибка извлечения PHP PDO. rowcount = 1, но fetchall возвращает false;

Поскольку число символов в начале является переменной, регулярное выражение помогло бы:

var re = new  Regex(@"\d+$"); // finds the consecutive digits at the end of the string
var result = partNumbers.OrderBy(x => int.Parse(re.Match(x).Value));

Если было фиксированное количество символов префикса, то вы могли бы использовать метод Substring для извлечение, начиная с соответствующих символов:

// parses the string as a number starting from the 5th character
var result = partNumbers.OrderBy(x => int.Parse(x.Substring(4)));

Если числа могут содержать разделитель десятичных чисел или разделитель тысяч, то регулярное выражение должно также допускать эти символы:

var re = new Regex(@"[\d,]*\.?\d+$");
var result = partNumbers.OrderBy(x => double.Parse(x.Substring(4)));

Если строка, возвращаемая регулярным выражением или Substring, может быть недоступна с помощью int.Parse / double.Parse, используйте соответствующий вариант TryParse:

var re = new  Regex(@"\d+$"); // finds the consecutive digits at the end of the string
var result = partNumbers.OrderBy(x => {
    int? parsed = null;
    if (int.TryParse(re.Match(x).Value, out var temp)) {
        parsed = temp;
    }
    return parsed;
});
1
задан j0k 3 September 2012 в 21:11
поделиться