如何用两个不同的列表创建一个唯一的对象?

时间:2015-02-06 20:11:55

标签: c# list windows-phone-8

我有两个List<>。但是,每个列表包含两个不同的对象。我需要在不同列表的两个对象中创建一个快乐的对象。

List1: List <Regions> reg
List2: List <Museums> mus
Object example: object NewObject <reg, mus>

有可能吗? 然后我带来在新页面中创建的对象

3 个答案:

答案 0 :(得分:2)

是的,您可以使用元组

reg.Zip(mus, (r,m) => Tuple.Create(r,m)).ToList();

答案 1 :(得分:2)

您可以创建复合包装器对象,并使用object initializer syntax或提供将两个集合作为参数的构造函数。

public class CompoundObject
{
    public List<Regions> Regions { get; set; }
    public List<Museums> Museums { get; set; }
}

var example = new CompoundObject { Regions = reg, Museums = mus };

OR

public class CompoundObject
{
    public List<Regions> Regions { get; set; }
    public List<Museums> Museums { get; set; }

    public CompoundObject(List<Regions> regions, List<Museums> museums)
    {
        Regions = regions;
        Museums = Museums;
    }
}

var example = new CompoundObject(reg, mus);

答案 2 :(得分:1)

您可以使用两个属性创建自定义对象:

public RegionsMuseums
{
    public List<Regions> Regions {get;set;}
    public List<Museums> Museums { get;set;}

    public RegionsMuseums(List<Regions> regions,  List<Museums> museums)
    {
        Regions = reg;
        Museums = mu;
    }
}

然后你可以创建这个对象的实例:

var obj = new RegionsMuseums(reg, mus);

其中regmus分别是您所拥有的地区和博物馆名单。