我有两个清单。一份人员列表和一份组织列表。我想将这些列表相互添加并创建一个新列表,然后将此列表绑定到 DropDownList。值得注意的是,我想在这个列表中添加另一个属性,当我想从 DropDownList 中选择一个项目时,它给我这个项目是个人或组织。如何创建此列表?
问问题
98 次
1 回答
1
重读您的问题,也许您不应该使用 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”条目都会有一个分配给条目Person
字段的实例,并且Type
将是PersonOrganizationType.Person
. 组织反之亦然。
于 2012-10-13T14:38:02.003 回答