แปลงรายการ <T> เป็น ObservableCollection <T>


คำตอบ:


252

ObservableCollection <T> มี constructor overload ซึ่งทำให้ IEnumerable <T>

ตัวอย่างรายชื่อint:

ObservableCollection<int> myCollection = new ObservableCollection<int>(myList);

อีกหนึ่งตัวอย่างสำหรับรายการObjectA:

ObservableCollection<ObjectA> myCollection = new ObservableCollection<ObjectA>(myList as List<ObjectA>);

ฉันชอบสิ่งนี้มากกว่าการสร้างวิธีการขยาย ช่วยให้การพึ่งพานับถอยหลัง
markokstate

1
จะบรรลุในทางกลับกันได้อย่างไร?
อรุณ

19

ObervableCollection มีตัวสร้างที่คุณสามารถส่งผ่านรายการของคุณได้ อ้างถึงMSDN :

 public ObservableCollection(
      List<T> list
 )

6

คอนสตรัคเตอร์ Observable Collection จะใช้ IList หรือ IEnumerable

หากคุณพบว่าคุณกำลังจะทำสิ่งนี้เป็นจำนวนมากคุณสามารถสร้างวิธีการขยายแบบง่ายๆ:

    public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> enumerable)
    {
        return new ObservableCollection<T>(enumerable);
    }
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.