C# - 当每个 'row' 有多个值时对列表进行排序?

标签 c# .net list sorting

异常:无法比较数组中的两个元素。

private void assignNames(DropDownList ddl, Hashtable names)
{
    List<ListItem> nameList = new List<ListItem>();
    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();
}

那么我怎样才能使用 Sort() 来比较“名称”而不是卡在键上呢?

最佳答案

提供 Comparison<T> 指示 List 关于如何对项目进行排序。

nameList.Sort(delegate(ListItem thisItem, ListItem otherItem) {
    return thisItem.Text.CompareTo(otherItem.Text);
});

您可能还想检查 null是完整的,除非你已经知道不会有任何东西,就像在这种情况下一样。

关于C# - 当每个 'row' 有多个值时对列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/247961/

相关文章:

c# - 如果我锁定一个对象而另一个线程使用该变量会怎样?

.net - Azure 无法在 Windows Server 2012 辅助角色上找到证书

.net - 什么可能导致进行 HttpWebRequest 调用的巨大开销?

python - 第一次迭代后可迭代解包结果为空对象

c# - 将 SqlCommand 与 C# 变量一起使用

c# - 如何在关闭前等待串口清空

.net - 启用分页时,在单击按钮时循环所有 gridview 行

python - 对多个输入集的理解

javascript - 具有多列的 CSS 列表,具有水平滚动和自动列宽和高度

c# - NHibernate事务提交,什么会提交到数据库?