有没有办法将可观察的集合转换为常规集合?

rlc*_*ews 7 c# wpf observablecollection

我有一个测试集合设置为:

ObservableCollection<Person> MyselectedPeople = new ObservableCollection<Person>();

public MainWindow()
    {
       InitializeComponent();
       FillData();
    }

public void FillData()
    {
        Person p1 = new Person();
        p1.NameFirst = "John";
        p1.NameLast = "Doe";
        p1.Address = "123 Main Street";
        p1.City = "Wilmington";
        p1.DOBTimeStamp = DateTime.Parse("04/12/1968").Date;
        p1.EyeColor = "Blue";
        p1.Height = "601";
        p1.HairColor = "BRN";

        MyselectedPeople.Add(p1);
    }
Run Code Online (Sandbox Code Playgroud)

一旦我构建了这个集合,我希望能够将Observable Collection转换为List类型.

这背后的原因是我的主要项目是接收带有数据的通用列表,我必须将其转换为Observable集合,以便在gridview,列表框等中使用.在UI中选择数据,然后将其发送回原始程序集以供进一步使用.

Dav*_*ite 10

我认为最快的方法是使用LINQ.

 List<Person> personList= MySelectedPeople.ToList(); 
Run Code Online (Sandbox Code Playgroud)

干杯.


Jar*_*Par 8

请尝试以下方法

var list = MyselectedPeople.ToList();
Run Code Online (Sandbox Code Playgroud)

确保您拥有System.Linq一份使用声明.


sho*_*sel 6

这应该做到......

List<Person> myList = MyselectedPeople.ToList<Person>();
Run Code Online (Sandbox Code Playgroud)

  • +1不使用`var`就好像它已经过时了. (2认同)

BFr*_*ree 5

我只想指出,除了显而易见的Linq扩展方法外,List始终有一个需要重载的重载。 IEnumerable<T>

return new List<Person>(MyselectedPeople);
Run Code Online (Sandbox Code Playgroud)