从数组列表中排除项目c#

时间:2016-07-28 11:43:41

标签: c#

我正在使用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)]); 
}

1 个答案:

答案 0 :(得分:4)

使用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),而不是在此方法中进行初始化。