@@IDENTITY
не безопасный объем и получит Вас назад идентификатор от другой таблицы, если у Вас есть вставка, включают исходную таблицу, всегда используют SCOPE_IDENTITY()
string SubString = MyString.Substring(MyString.Length-6);
Предполагаю ваши требования, но следующее регулярное выражение даст результат только с 6 буквенно-цифровыми символами перед концом строки и не совпадет в противном случае.
string result = Regex.Match("PER 343573", @"[a-zA-Z\d]{6}$").Value;
String mystr = "PER 343573";
String number = mystr.Substring(mystr.Length-6);
РЕДАКТИРОВАТЬ: слишком медленно ...
Используйте это:
String text = "PER 343573";
String numbers = text;
if (text.Length > 6)
{
numbers = text.Substring(text.Length - 6);
}
Вероятно, лучше использовать метод расширения:
public static class StringExtensions
{
public static string Right(this string str, int length)
{
return str.Substring(str.Length - length, length);
}
}
Использование
string myStr = "ABCDEPER 343573";
string subStr = myStr.Right(6);
Это не совсем то, что вы просите, но, просто глядя на пример, кажется, что вы ищете числовую часть строки.
Если это всегда случае, то хороший способ сделать это - использовать регулярное выражение.
var regex= new Regex("\n+");
string numberString = regex.Match(page).Value;
Напишите метод расширения для выражения функции Right (n);
. Функция должна обрабатывать пустые или пустые строки, возвращающие пустую строку, строки короче максимальной длины, возвращающие исходную строку, и строки длиннее максимальной длины, возвращающие максимальную длину крайних правых символов.
public static string Right(this string sValue, int iMaxLength)
{
//Check if the value is valid
if (string.IsNullOrEmpty(sValue))
{
//Set valid empty string as string could be null
sValue = string.Empty;
}
else if (sValue.Length > iMaxLength)
{
//Make the string no longer than the max length
sValue = sValue.Substring(sValue.Length - iMaxLength, iMaxLength);
}
//Return the string
return sValue;
}
Без использования преобразователя бит и сдвига бит (необходимо быть уверенным в кодировании) это самый быстрый метод, который я использую в качестве метода расширения 'Верно'.
string myString = "123456789123456789";
if (myString > 6)
{
char[] cString = myString.ToCharArray();
Array.Reverse(myString);
Array.Resize(ref myString, 6);
Array.Reverse(myString);
string val = new string(myString);
}