2015-11-03 43 views
0

我在努力寻找连接两个对象列表但未能实现的解决方案。c中两个对象列表的连接#

这是我的代码

List<dealsobj> mylist = new List<dealsobj>(); 
List<itemsobj> mylist1 = new List<itemsobj>(); 


public class dealsobj 
{ 
    public string Dealname; 
    public string Ticketcount; 
    public string OriginalPrice; 
    public string Dealsticketcount; 
    public string dealprice; 
    public string totalprice; 

    public dealsobj(string v1, string v2,string v3,string v4,string v5,string v6) 
    { 
     Dealname = v1; 
     Ticketcount = v2; 
     OriginalPrice = v3; 
     Dealsticketcount = v4; 
     dealprice = v5; 
     totalprice = v6; 
     } 
    } 

public class itemsobj 
{ 
    public string Itemname; 
    public string price; 
    public string quantity; 
     public itemsobj(string v1, string v2, string v3) 
     { 
      Itemname = v1; 
      price = v2; 
      quantity = v3; 
     } 
     } 
mylist.Add(new dealsobj(dealname, tictnum, origpri, dealsticktnu, dp, totamnt)); 
mylist1.Add(new itemsobj(itnme, price, quant)); 

我想连接这两个lists.I已经尝试过unionconcate。但我有错误only.Please帮助我的人。

+0

什么错误没有你得到? – MusicLovingIndianGirl

+1

它们是不同的'Type',你不能像这样连接它们。 –

+1

你想要连接**完全不同类型**的两个列表。结果列表中的项目应该是什么类型? –

回答

4

使用

var result = mylist.Cast<object>().Concat(mylist1.Cast<object>()); 

拆箱它:

var list = result.OfType<dealsobj>(); 
var list1 = result.OfType<itemsobj>(); 
0

您不能将两个列表与不同的类相关联,但可以为dealsobj和itemsobj创建基类,并使用List<base>进行组合。

+0

不完整的答案。您可以投射到“物体”,或者您可以创建一个通用界面。 – sdgfsdh

0

如果这是你自己的归类,您可以使用operator overloading创建自己的连接符:

public static dealsClass operator +(dealsClass x, itemsClass y) 
    { 
     return new dealsClass(x.val1 + y.val1, x.val2 + y.val2); 
    }