2011-06-15 69 views
2

我定义2对象:如何在列表项目之间进行自动转换?

public sealed class obj1 
    { 
     public int i1; 
     public string str1 
    } 

    public sealed class obj2 
    { 
     public int i2; 
     public string str2 

    public static explicit operator obj2(obj1 e) 
    { 
     return new obj2() 
     { 

      i2 = e.i1; 
      str2 = e.str; 

     } 
    } 

}

现在,我定义2列表包含对象

List<obj1> obj1item; 
List<obj2> obj2item = new List<obj2>(); 

obj2item.add(o1); 
obj2item.add(o2); 

而现在,我想添加对象从obj2itemobj1item;

不是说我想要做的

obj1Item = obj2Item 

我使用LINQ做

var v = from t in obj2item 
      select (obj1) t; 

    foreach (var item in v) 
    { 
     obj1item.Add(item); 
    } 

我的问题:

有一些其他的方式做将obj2Item项目添加到obj1Item?

回答

4
obj1item.AddRange(v.Cast<obj1>()) 
+0

,如果我使用的收集是不是列表=>如果此集合中的ObservableCollection和我没有方法“的AddRange” – Yanshof 2011-06-15 06:59:17

+0

那么你仍然可以使用“foreach'回路,并使用”添加'-方法 – sloth 2011-06-15 07:22:08

相关问题