Вы должны определить лучше первым, лучшим с точки зрения читаемости или CPU-циклов?
Я предполагаю, что это является эффективным и достаточно читаемым:
string values = "[val1].[val2].[val3]";
string lastValue = values.Split('.').Last().Trim('[',']');
или Substring
, которые могут быть более эффективными, но это не так безопасно, так как вы должны обрабатывать случай, когда нет там нет точек вообще.
lastValue = values.Substring(values.LastIndexOf('.') + 1).Trim('[',']');
Таким образом, вы должны проверить это первым:
int indexOflastDot = values.LastIndexOf('.');
if(indexOflastDot >= 0)
{
lastValue = values.Substring(indexOflastDot + 1).Trim('[',']');
}
Если нет точки, 'LastIndexOf' возвращает -1, что отлично работает, нет? – Rawling
@Rawling: Я уже добавил это как комментарий, но теперь я также показал, как вы можете его проверить. –
Нет, я имею в виду, что это * ОК *, если нет точки, потому что вы просто закончите тем, что вызываете '.Substring (0)' – Rawling