开发者

How to sort ResourceSet in C#

开发者 https://www.devze.com 2022-12-11 02:05 出处:网络
I have a resource file named filetypes.resx. Some how I figured out to bind the resource values to dropdownlist, but I don\'t know how to sort the values of ResourceSet.

I have a resource file named filetypes.resx. Some how I figured out to bind the resource values to dropdownlist, but I don't know how to sort the values of ResourceSet.

Here is what I did so far,

FileTypes.resx

  • Name,Value
  • A,1

  • B,2

  • C,3

code to bind dropdownlist


DropDownList1.DataSource = Resources.FileTypes.ResourceManager.GetResourceSet(System.Globalization.CultureInfo.Current开发者_开发问答Culture, true, true);
DropDownList1.DataTextField = "Key";
DropDownList1.DataValueField = "Value";
DropDownList1.DataBind();

Result

 A
 C
 B
As you can see the result is not sorted. Please help me to solve this issue.

Many thanks in advance :)


The ressource set has a IDictionaryEnumerator so I guess that its items are of type DictionaryEntry, try to sort the data source like this :

DropDownList1.DataSource = Resources.FileTypes.ResourceManager
    .GetResourceSet(System.Globalization.CultureInfo.CurrentCulture, true, true)
    .OfType<DictionaryEntry>()
    .OrderBy(i => i.Value);

Hum, I have no visual studio opened so don't blame me in case it does not work immediatly :)


ResourceSet has a property named Table, of type HashTable. Maybe you could generate a sorted list out of that table (manually, or by using LINQ), then assign this list to DropDownList1.DataSource.


Hashtable is not a sorted collection.



Hashtable tbl = Resources.FileTypes.ResourceManager.
GetResourceSet(System.Globalization.CultureInfo.CurrentCulture, true, true).Table;
List source = new List(tbl.Values);
source.Sort();
DropDownList1.DataSource = source;
DropDownList1.DataBind();

0

精彩评论

暂无评论...
验证码 换一张
取 消