我一直在尝试用C#对这个位图数组进行按字母顺序排列,因为资源没有在resx文件中按字母顺序排列。
我已使用此代码将资源获取到数组
var resourceSet = Properties.Resources.ResourceManager.GetResourceSet(System.Globalization.CultureInfo.CurrentUICulture, true, true);
System.Drawing.Bitmap[] imageArray = resourceSet.OfType<DictionaryEntry>()
.Select(i => (System.Drawing.Bitmap)i.Value)
.ToArray();
答案 0 :(得分:0)
您的问题是在Select
中,您丢失了要排序的Key
。使用匿名类型或新类来保留名称和图像:
var imageArray = resourceSet
.OfType<DictionaryEntry>()
.Select(d =>
new
{
Name = d.Key.ToString(),
Image = (Bitmap)d.Value
})
.OrderBy(d => d.Name);
.ToArray();