2011-08-14 13 views
9

I.E.配列から選択したい場合は、結果のIEnumerable<object>オブジェクトが必ず順番に並んでいますか?C#コレクションは常に順序を強制しますか?

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? 
} 

ありがとうございます!

+0

それらの中に置か項目に基づいて順序を保証アプライなSortedSet<T>SortedDictionary<TKey, TValue>として

  • コレクションを返される順序についての保証を行いません学生とは何ですか?リスト?ソートされたリスト?配列?辞書? 「コレクション」は広範な用語であり、それぞれ異なる特性を持っています。 –

  • +0

    @Mystere:2行目と同じように、配列です。 –

    +0

    @Jon Skeet - Doh!それを逃した... –

    答えて

    15

    はい、この場合:

    • アレイは(投影後、コースの)元の配列のために自然な順序で項目
    • Enumerable.Select返品アイテムを返し

    一部のコレクションはではありません。ただし、は注文を保持しています。特に:そのようHashSet<T>Dictionary<TKey, TValue>など

    • コレクションは、値が
    関連する問題