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