IList<ListItem> dropDownListItems = new List<ListItem>();
foreach (XmlNode node in topicNodes)
{
string topicId = node.Attributes["TopicId"].Value;
string topicName = node.Attributes["TopicName"].Value;
dropDownListItems.Add(new ListItem(topicName, topicId));
}
DropDownList1.DataSource = dropDownListItems.Distinct();
DropDownList1.DataBind();
EDIT
Я думаю, что вы получаете ошибки в своем HashSet, потому что ваш класс DropDownListClass не реализует IComparable
Ниже приведен пример того, как дубликаты данных попадают в HashSet. Класс MyObject, вероятно, должен реализовывать интерфейс IComparible.
public void Main()
{
HashSet<MyObject> myObjects = new HashSet<MyObject>();
bool success = myObjects.Add(new MyObject{ID = 1});
success.Dump("First"); //Returns true
success = myObjects.Add(new MyObject{ID = 1});
success.Dump("Second"); //Returns true should have been false
}
// Define other methods and classes here
public class MyObject
{
public int ID {get; set;}
}
Вы даже можете вызывать Distinct () из вашего исходного объекта HashSet, но это просто скрывает, что он сломан.