0
我有两个列表。一个人名单和一个组织名单。 我想将这些列表相互添加并创建一个新列表,然后将此列表绑定到DropDownList。 值得注意的是,我想添加另一个属性到这个列表中,当我想从DropDownList中选择一个项目时,它给了我这个项目是Person或Organization。 如何创建此列表?从两个不同的列表创建一个列表
我有两个列表。一个人名单和一个组织名单。 我想将这些列表相互添加并创建一个新列表,然后将此列表绑定到DropDownList。 值得注意的是,我想添加另一个属性到这个列表中,当我想从DropDownList中选择一个项目时,它给了我这个项目是Person或Organization。 如何创建此列表?从两个不同的列表创建一个列表
重新读你的问题,也许你不应该使用Zip(或者比我将要使用它更好的方法)。
创建一个单独的类,它可以包含两种,有其标记,如果它是一个人或组织,然后建立人的名单:
:public class PersonOrganizationEntry
{
public Person Person { get; private set; }
public Organization Organization { get; private set; }
public PersonOrganizationType Type { get; private set; }
public PersonOrganizationEntry(Person person)
{
this.Person = person;
this.Type = PersonOrganizationType.Person;
}
public PersonOrganizationEntry(Organization organization)
{
this.Organization = organization;
this.Type = PersonOrganizationType.Organization;
}
}
public enum PersonOrganizationType
{
Person,
Organization
}
然后你列出这种新型合并在一起
var persons = new List<Person>()
{
new Person(),
new Person(),
new Person()
};
var organizations = new List<Organization>()
{
new Organization(),
new Organization()
};
var mergedEntries =
persons.Select(p => new PersonOrganizationEntry(p))
.Concat(
organizations.Select(o => new PersonOrganizationEntry(o))
).ToList();
然后,您可以将您的下拉列表绑定到此集合PersonOrganizationEntry
。每个“人员”条目将有一个实例分配给条目的Person
字段,而Type
将为PersonOrganizationType.Person
。反之亦然组织。
看看Linq的'Zip'函数:http://msdn.microsoft.com/en-us/library/dd267698.aspx –
从创建一个类,它都从(fe' OrgUnit')继承属性'OrgType'。然后你可以使用'List'作为DataSource。 –
你的两个相同类型的列表? – jams