返回静态类的所有选定属性值

时间:2014-11-06 05:42:13

标签: c# image winforms

我有一个名为CommonImage的静态类,它具有静态Bitmap的属性,可以随时获取。 继承了我的实际课程:

public static class CommonImage
    {
        public static Bitmap AccountConnected { get; }

        public static Bitmap AccountDisconnected { get; }

        public static Bitmap ArrowDownIcon { get; }

        public static Bitmap ArrowUpIcon { get; }

        public static Bitmap AutoScrollIcon { get; }

        public static Bitmap RSConsDark { get; }

        public static Bitmap RSConsLight { get; }

        public static Bitmap RSDelDark { get; }

        public static Bitmap RSDelLight { get; }
    }

我想做什么:

我希望获得所有属性/图片,以" RS" 开头,并将所有图片存储在ImageCollection中。 如果可能的话,没有像foreach和forloop这样的循环。

3 个答案:

答案 0 :(得分:0)

试试这个: -

var query = typeof(CommonIcons).GetProperties().Where(x => x.Name.Contains("RS")).Select(x => x.Name).ToList();

答案 1 :(得分:0)

如果你尝试这样的话怎么办?

var query = typeof(CommonImage).GetProperties().Where(x => x.Name.Contains("RS")).Select(x => x.Name).ToList();
            var ImageList = new ImageList();
            query.ForEach(propName => ImageList.Images.Add((Bitmap)typeof(CommonImage).GetProperty(propName).GetValue(typeof(CommonImage), null)));
            System.Windows.Forms.ImageList.ImageCollection col = ImageList.Images;

答案 2 :(得分:0)

我不会为这种非动态的东西进行反思,只是静态地定义一个额外的属性:

public static ImageCollection RSImages
{
   get
   {
      var ic = new ImageCollection();
      ic.Add(RSConsDark);
      ic.Add(RSConsLight);
      //etc
      return ic; 
   }
}