撤消下拉列表的默认顺序

C-S*_*oob 1 c# dropdownbox

有没有一种简单的方法来反转下拉列表的默认顺序?

if (_group.Category == GroupCategory.Workers || 
    _group.Category == GroupCategory.Acct)
{
      this.cboList.DataSource = null;
      this.cboList.DisplayMember = "DescForMCE";
      this.cboList.ValueMember = "ID";
      this.cboList.DataSource = _ch.Accounts;
      this.cboList.Visible = true;
      this.lblList.Visible = true;
}
Run Code Online (Sandbox Code Playgroud)

Fis*_*rdo 6

您可以在绑定之前反转数据源的顺序.

if (_group.Category == GroupCategory.Workers || 
    _group.Category == GroupCategory.Acct)
{
      this.cboList.DataSource = null;
      this.cboList.DisplayMember = "DescForMCE";
      this.cboList.ValueMember = "ID";
      this.cboList.DataSource = _ch.Accounts.Reverse();
      this.cboList.Visible = true;
      this.lblList.Visible = true;
}
Run Code Online (Sandbox Code Playgroud)

根据数据源集合的确切类型和.NET版本,它可能不像上面的示例那么简单,它假定数据源实现IEnumerable<T>并且可以直接使用Reverse()扩展方法[MSDN].

例如,如果您只有IEnumerable(非通用版本),您仍然可以使用Cast<T>()[MSDN]完成两次调用:

collection.Cast<YourType>().Reverse();
Run Code Online (Sandbox Code Playgroud)

或者您的集合类可能有自己的实现Reverse(),如List<T>[MSDN]Array[MSDN]