2015-06-27 4 views
0

Иногда мне нужно получить последний элемент в массиве, если я что-то расколол. Несмотря на то, что я не нашел способ сделать это лучше, чем этот путь:Получить последний элемент списка/массива

_Path.Split('\\')[_Path.Split('\\').Length - 1] 

Есть ли может быть более простой способ сделать это, чем этот? В этом случае это довольно приятно понять, но если он дольше, он больше не будет.

+1

Использование Linq. '_Path.Split ('\\'). Последний()'. Дублирующий вопрос. пожалуйста, прежде чем задавать новый вопрос –

+1

using System.Linq; var last = _Path.Split ('\\'). Last(); – Maarten

ответ

1

Возможно, есть более простой способ сделать это, чем этот?

Да, с помощью Enumerable.Last:

var last = _Path.Split('\\').Last(); 

Если вы не уверены, Path.Split даст какие-либо элементы, используйте Enumerable.LastOrDefault и сверять с нулем.

var last = _Path.Split('\\').LastOrDefault(); 
if (last != null) 
{ 
    // Do stuff. 
} 
+0

'LastOrDefault()' тоже в случае пустого массива. –

+0

@ M.kazem Да, я просто редактировал. –

3

Используйте Last или LastOrDefault методы расширения:

_Path.Split('\\').Last() 
  • Last будет сгенерировано исключение, если нет элементов
  • LastOrDefault будет возвращать значение по умолчанию - default(T) - который null для эталонные типы

Вам нужно добавить: метод

using System.Linq; 
+0

Меня всегда немного пугало из-за IEnumerable, но если он работает так, как вы его написали, то это нормально. ^^ –

+0

@ DanielFrühauf это прекрасно. Почему это тебя пугало? LINQ для объектов - очень мощный набор инструментов, и его стоит освоить. –

1

Использовать Linq в Last():

_Path.Split('\\').Last(); 

Не забудьте using System.Linq; требуется.