none
请问怎样将List<T>或IList<T>转成ObservableCollection<T> RRS feed

答案


  • 这样你试试:

    public Page()
            {
                InitializeComponent();
                List<object> s = new List<object>();
    
                ObservableCollection<object> oc = new ObservableCollection<object>();
                oc.Concat<object>(s);
    
    
            }

    使用Linq里面的扩展方法


    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年7月28日 11:40
    版主
  • 在WCF服务引用的时候我想VS已经帮我们做好了这两种类型的转换工作,不用我们去参与.

    不过WCF返回的List<T> 类型确实被转变成ObservableCollection<T>类型返回,操作方法类似,而且可以ObservableCollection<T>.ToList<T>()出来

    不知List<T> as ObservableCollection<T>可否,楼主要的是否是这个捏? -0-Y
    2009年7月29日 3:42

全部回复

  • 可以考虑用PagedCollectionView,有默认的Constructor可以整体构造。

    2009年7月28日 6:51
  • PagedCollectionView在System.Windows.Data.dll中。
    2009年7月28日 7:35
  • ObservableCollection<T> 这个类型貌似可以直接TO成LIST<T>

    而且好象在WCF的自定义类型LIST<T>返回中返回的类型都是ObservableCollection<T>

    我去试试哈
    2009年7月28日 9:45
  • 自己写个扩展方法吧!以后都可以用

    public static class CollectionExtensions
        {
            public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> coll)
            {
                var c = new ObservableCollection<T>();
                foreach (var e in coll)
                    c.Add(e);
                return c;
            }
        }
    

    http://silverlight.net/forums/t/39487.aspx
    这个是国外的一些人的回答!
    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年7月28日 11:36
    版主

  • 这样你试试:

    public Page()
            {
                InitializeComponent();
                List<object> s = new List<object>();
    
                ObservableCollection<object> oc = new ObservableCollection<object>();
                oc.Concat<object>(s);
    
    
            }

    使用Linq里面的扩展方法


    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年7月28日 11:40
    版主
  • ObservableCollection<T> 这个类型貌似可以直接TO成LIST<T>

    而且好象在WCF的自定义类型LIST<T>返回中返回的类型都是ObservableCollection<T>

    我去试试哈

    这个 就可以
    2009年7月29日 2:24
  • 如果不是WCF了?


    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年7月29日 2:27
    版主
  • 我不明白你什么地方要使用这个转换?

    SL使用ObservableCollection<T>
    后台使用List<T>,通过wcf使用时自动就是List<T>转换成ObservableCollection<T>,反之依然。所以我不知道为什么要转换,呵呵。

    mhw11
    2009年7月29日 3:22
  • 我想他可能从别的地方取过来的数据,或者调用别的类库返回的值是IList吧!
    不过你说的WCF返回的值是ObservableCollection 这个还不错!呵呵!
    我还是一直用XML来返回的


    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年7月29日 3:26
    版主
  • 在WCF服务引用的时候我想VS已经帮我们做好了这两种类型的转换工作,不用我们去参与.

    不过WCF返回的List<T> 类型确实被转变成ObservableCollection<T>类型返回,操作方法类似,而且可以ObservableCollection<T>.ToList<T>()出来

    不知List<T> as ObservableCollection<T>可否,楼主要的是否是这个捏? -0-Y
    2009年7月29日 3:42
  • List<T>应该不可以吧!
    IList<T>  应该可以.


    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年7月29日 5:18
    版主