Отримайте всі елементи, окрім першого, з масиву


130

Чи є однорядковий простий вираз linq, щоб просто отримати все з простого масиву, крім першого елемента?

for (int i = 1; i <= contents.Length - 1; i++)
    Message += contents[i];

Я просто хотів подивитися, чи легше конденсуватися.

Відповіді:


244

Так, безліч. Скіп робить те, що ви хочете:

contents.Skip(1)

Однак результат - IEnumerable <T>, якщо ви хочете отримати масив:

contents.Skip(1).ToArray()

Також можливо обернути contentsмасив у новий екземпляр ArraySegment<>структури. У той час над відповіддю було написано, що не було особливо корисним, але з .NET 4.5 з ArraySegment<>інвентарем IList<>, IReadOnlyList<>і їх базових інтерфейсів ( в тому числі IEnumerable<>), так що ви можете, наприклад , передати ArraySegment<>в string.Join.
Джеппе Стіг Нільсен

Наскільки я ненавиджу Linq, я вирішив, що можу це терпіти, лише тому, що він працює в статичному конструкторі один раз на завантаження програми, тому накладні показники продуктивності відсутні.
Krythic

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.