2010-04-09 21 views
100

İlk öğeden başka basit bir diziden her şeyi almak için tek satır kolay bir linq ifadesi var mı?Tüm öğeleri bir diziden ilk alın ama

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

Sadece yoğunlaşmanın daha kolay olup olmadığını görmek istedim.

contents.Skip(1).ToArray() 

cevap

181

Evet, Enumerable.Skip istediğini yapar for döngüsüne eşdeğer:

foreach (var item in contents.Skip(1)) 
    Message += item; 
+0

Ayrıca "content" arralarını sarmalamak da mümkündür y ArraySegment <> yapısının yeni bir örneğinde. Yukarıdaki cevap yazıldığı sırada, bu özellikle yararlı değildi, ancak .NET 4.5'den beri 'ArraySegment <>,' IList <> ',' IReadOnlyList <> 've onların temel arabirimlerini ('IEnumerable <>' dahil) uygular. Örneğin, bir dizi ArraySegment <> '' string.Join' için iletebilirsiniz. –

+0

Linq'den nefret ettiğim kadarıyla, sadece bir uygulama kurgusu başına bir statik kurucuda çalıştırıldığından, buna katlanabileceğime karar verdim, bu yüzden performans yükü yok. – Krythic

6

şöyle olur: Bir dizi kullanımı almak istiyorsanız

contents.Skip(1) 

Ancak, sonuç IEnumerable < T> vardır:

+1

_'var item'_ istedin mi? – Joe