从数组列表c#中排除项

本文关键字:排除 数组 列表 | 更新日期: 2023-09-27 17:59:01

我正在使用ASP。NET 2013,我想绘制图表,并为每个点提供不同的颜色,除了一些,例如黑色,透明等。

它运行良好,但有一些颜色我想排除。

var colours = typeof(System.Drawing.Color)
               .GetProperties()
               .Where(x => x.PropertyType == typeof(System.Drawing.Color))
               .Select(x => x.Name)
               .ToArray();
Random rColor = new Random();
foreach (var item in Chart2.Series[0].Points)
{
   item.Color = System.Drawing.Color.FromName(colours[rColor.Next(0, colours.Length)]); 
}

从数组列表c#中排除项

使用Color[] excludeColorsExcept:

Color[] excludeColors = { Color.Black, ... };
var allColors = var colours = typeof(System.Drawing.Color)
               .GetProperties()
               .Where(x => x.PropertyType == typeof(System.Drawing.Color))
               .Select(x => System.Drawing.Color.FromName(x.Name));
Color[] usedColors = allColors.Except(excludeColors).ToArray();
foreach (var item in Chart2.Series[0].Points)
{
   Color randomColor = usedColors[rColor.Next(usedColors.Length)];
   item.Color = randomColor; 
}

由于您只需要初始化一次,因此应该在构造函数中(或者在可以修改excludeColors的地方)进行初始化,而不是在该方法中。