网上有人说可以通过Concat 扩展方法实现,可是本人尝试之后,不知为何好像实现不了,代码如下:
public Page()
{
InitializeComponent();
List<UserInfo> s = new List<UserInfo>();
s .Add(new UserInfo("A.", "Zero", "12 North Third Street, Apartment 45", false));
s .Add(new UserInfo("B.", "One", "34 West Fifth Street, Apartment 67", false));
ObservableCollection<UserInfo> oc = new ObservableCollection<UserInfo>();
oc.Concat<UserInfo>(s);
}
望高手们指教,谢谢了!^_^
可以采用如下的方法:(使用你例子里的变量进行说明)
ObservableCollection<UserInfo> oc = new ObservableCollection<UserInfo>();
s.ForEach(x => oc.Add(x));
这样就能转换了。
ObservableCollection<UserInfo> oc = new ObservableCollection<UserInfo>(s);
如果一定要Concat,则oc = oc.Concat(s);
如果使用自己的扩展方法的话 在通知上会出部分问题,比如在listbox to drag 的时候就会出现异常!
也就是说 通过add 会有点问题
可以采用如下的方法:(使用你例子里的变量进行说明)
ObservableCollection<UserInfo> oc = new ObservableCollection<UserInfo>();
s.ForEach(x => oc.Add(x));
这样就能转换了。
Kinglee老师,我的问题是:如果反过来,将ObserableCollection<T>转换成List<T>,是不是也可以仿照您的方法,比如:
oc.ForEach(x => s.Add(x));