1

我想将字典绑定到 DropDownList。但在绑定之前,我想按字母顺序对它进行排序 - 通过键或值。

我怎样才能得到它?是否有某种内置排序功能或技巧?

这是我的代码:

      Dim Dic1 As New Dictionary(Of String, String)

      Dic1.Add("1", "pear")
      Dic1.Add("2", "apple")
      Dic1.Add("3", "juice")
      Dic1.Add("4", "milk")
      Dic1.Add("5", "cornflakes")

    drpProduct.DataSource = Dic1
    drpProduct.DataTextField = "Value"
    drpProduct.DataValueField = "Key"
    drpProduct.DataBind()

在此先感谢,最好的问候。

4

3 回答 3

3

您可以自己对其进行排序,但最好的方法可能是使用SortedDictionary.

于 2012-12-13T15:02:36.580 回答
1

这可以在 LINQ 中通过以下方式实现(例如,按字母顺序对键进行排序,C# 语法):

drpProduct.DataSource = Dic1.OrderBy(kvp => kvp.Key);

(VB.Net,类似... = Dic1.OrderBy(Function(kvp) kvp.Key)

这本身并不强制对您的字典进行排序,但它在绑定到下拉列表时专门提供了排序。

于 2012-12-13T15:04:55.040 回答
0

您可以使用 Linq:

drpProduct.DataSource = From kv In Dic1 Order By kv.Value
drpProduct.DataTextField = "Value"
drpProduct.DataValueField = "Key"
drpProduct.DataBind()

如果您Order By kv.ValueOrder By kv.Key通过钥匙订购,请改为。

但是正如 Adi 已经提到的那样,最好SortedDictionary从一开始就使用 a 。

于 2012-12-13T15:12:59.077 回答