使用 LINQ 对列表框列表项进行排序

本文关键字:列表 排序 LINQ 使用 | 更新日期: 2023-09-27 18:35:04

我正在尝试对列表框中的项目进行排序。但是,这样做后,项目值将设置为项目文本。任何帮助将不胜感激。

lbxCustomers.DataSource = lbxCustomers.Items.Cast<ListItem>().Reverse().ToList();
lbxCustomers.DataBind();

使用 LINQ 对列表框列表项进行排序

可能首先您应该将列表存储在泛型集合中,然后对其进行排序。像这样:

List<ListItem> list = new List<ListItem>(lbxCustomers.Items.Cast<ListItem>());
list = list.OrderBy(li => li.Text).ToList<ListItem>();
lbxCustomers.Items.Clear();
lbxCustomers.Items.AddRange(list.ToArray<ListItem>());

设置数据源后,尝试重置列表框的DisplayMemberValueMember属性。很多时候,如果控件已绑定,并且您再次设置了数据源,则会删除 DisplayMember/ValueMember 属性。

尝试单独对列表进行排序。将"文本"值和"数据"值指向下一步。数据绑定控件。