我有一个名为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这样的循环。
答案 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;
}
}