<p>Exception: Failed to compare two elements in the array.</p>

<pre><code>private void assignNames(DropDownList ddl, Hashtable names)
{
    List&lt;ListItem&gt; nameList = new List&lt;ListItem&gt;();
    if (ddl != null)
    {
        ddl.ClearSelection();
        ddl.Items.Add(new ListItem("Select Author"));
        foreach (string key in names.Keys)
        {
            nameList.Add(new ListItem(names[key].ToString(), key));

        }

    nameList.Sort();
}
</code></pre>

<p>So how can I use Sort() to compare on the "names" and not get stuck on the key?</p>

what type of object is "names"?
EDIT:
From what I can tell you will have to specify an IComparer for this to work, not sure if I fully understand what you are trying to do though.
EDIT:
This is way too complicated for what I "feel" your intent is, you basically want to populate a dropdown list with a sorted list of Author names.
you should be able to have a
```
```
List<string> auhtorNames;
authorNames.Sort();
ddl.DataSource = authorNames;
ddl.DataBind();
```
```