Ответы:
Да, Enumerable.Skip делает то, что вы хотите:
contents.Skip(1)
Однако результатом будет IEnumerable <T>, если вы хотите использовать массив:
contents.Skip(1).ToArray()
Следующее будет эквивалентно вашему forциклу:
foreach (var item in contents.Skip(1))
Message += item;
var item??
contentsмассив в новый экземплярArraySegment<>структуры. В то время над ответом было написано, что не было особенно полезным, но с .NET 4.5 сArraySegment<>инвентаремIList<>,IReadOnlyList<>и их базовых интерфейсов ( в том числеIEnumerable<>), так что вы можете, например , передатьArraySegment<>вstring.Join.