В исходном опубликованном коде у вас есть ошибка типа, о которой вам сообщает исключение. Он ожидает объект Color, а вы даете ему объект MyContainer, и нет способа конвертировать между ними.
В моем комментарии предлагается изменить ваш код на следующий:
public class ListMapColor
{
public class MyContainer
{
public Color Number { get; set; }
public Color Name { get; set; }
public MyContainer(Color number, Color name)
{
Number = number;
Name = name;
}
}
public HashSet<MyContainer> Battle(HashSet<MyContainer> colors)
{
return colors.Add( new MyContainer (Color.FromArgb(255, 47, 47, 47), Color.FromName("ff2f2f2f") );
}
}
Это исправит ошибку типа. Если вам нужен объект HashSet of Color, вам нужно добавлять объекты Color, а не объекты MyContainer.
Я не уверен, зачем вам это нужно.
Кажется, вы можете хотите что-то вроде:
HashSet<Color> myColors = new HashSet<Color>();
myColors.Add(Color.FromArgb(255,47,47,47));
myColors.Add(Color.FromName("ff2f2f2f"));
myColors.Add(Color.FromName("AliceBlue"));
Затем вы можете получить доступ ко всем методам Color, которые могут вам понадобиться:
foreach(Color color in myColors)
{
Console.WriteLine(color.Name);
Console.WriteLine(color.IsKnownColor);
Console.WriteLine(color.ToArgb());
Console.WriteLine(color.IsNamedColor());
}