У меня есть строка, которая ее первая часть представляет собой строку и последний один ряд, например:номер Дробление и строка с помощью LINQ
ahde7394
так, что я хотел бы получить это:
ahde
Я думал сначала извлечь строку, а затем из последней позиции символа не получить номер до конца ул кольцо, так что я думаю, что с помощью индексаторах можно сделать как-то:
var stringQuery = NameComp.Select((str,index) => new {myStr=str, position=index})
.Where(c => !Char.IsDigit(c.myStr)).Select((ch,pos) => new { newStr=ch, pos=pos});
тогда я мог бы сделать:
1) Для того, чтобы получить строку: stringQuery.newStr
2) Для того, чтобы получить номер: stringQuery. Пропустить (stringQuery.pos). Выбрать (d => d);
, но он не работает, после получения stringQuery я не могу получить доступ к его элементам, как это анонимный тип ....
Любые идеи?
Решение с помощью LINQ, догадываясь, что ул = "ahde7394":
string letters = new string(str.TakeWhile(c => Char.IsLetter(c)).ToArray());
и номер:
string number = new string(str.Skip(letters.Length).TakeWhile(c => Char.IsDigit(c)).ToArray());
или лучше угадывание последнюю часть является номер:
string number = str.Substring(name.Length);
+1 Regex - лучшее решение здесь – Alireza
Это очень приятное решение. В любом случае использование Linq также может быть выполнено. См. Мое обновленное сообщение. Мне интересно, что в этом случае более эффективно и быстро ... кто-нибудь знает? – user304602
Производительность в этом конкретном экземпляре и с этими конкретными размерами была бы незаметной. –