2011-08-14 18 views
9

I.E. Bir diziden seçmek istiyorsam, sonuç olarak sırasıyla IEnumerable<object> nesnesi mi?C# koleksiyonları her zaman siparişi zorlar mı?

public class Student { public string FullName, ... } 
public class School { public string Name, public Student[] Students, ... } 

public void StudentListWork(School thisSchool) 
{ 
    IEnumerable<string> StudentNames = thisSchool.Students.Select(student => student.FullName); 

    // IS StudentNames GUARANTEED TO BE IN THE SAME ORDER AS thisSchool.Students? 
} 

Teşekkürler!

+0

içlerinde yerleştirilen öğelere dayalı sıralamayı garanti geçerlidir böyle SortedSet<T> ve SortedDictionary<TKey, TValue> olarak

  • Koleksiyonlar'ı döndürülür sırayı hakkında hiçbir garanti Öğrenciler nedir? Bir liste? sıralanmış bir liste? bir dizi? bir sözlük? "koleksiyonlar" geniş bir terimdir ve farklı özelliklere sahiptirler. –

  • +0

    @Mystere: İkinci satıra göre bir dizi. –

    +0

    @Jon Skeet - Doh! kaçırdı ... –

    cevap

    15

    Evet, bu durumda:

    • Diziler (tabii, projeksiyon sonra)
    • Enumerable.Select döner öğeler orijinal dizisinin sırayla doğal sırayla öğeleri döndürür

    Bazı koleksiyonlar, kayıt sırasını saklar, ancak . Özellikle: Böyle HashSet<T> ve Dictionary<TKey, TValue> olarak

    • Koleksiyonları değerleri