У меня есть список объектов C# по умолчанию. Все они в формате RGB, то есть для черных, например, выглядит так: 0, 0, 0
. Можно ли найти «максимальное» и «минимальное» значение этого списка? Я имею в виду, нахожу наименьший интенсивный или самый интенсивный цвет в этом списке цветов, вроде как list.Maximum
в списке целых чисел. Попытка Google не дал мне ничего, и пытается использовать Intellisense только дал мне эти варианты:Поиск «максимального» или «минимального» цвета в списке цветов?
ответ
Если вычислить это значение для каждого цвета и взять цвет с наивысшим значением оно будет вашим результат:
var intensity = (0.2125 * R) + (0.7154 * G) + (0.0721 * B);
с перечнем объектов Color
найти максимальное примерно так:
var cs = new List<Color> { Color.Red, Color.Black };
var max = cs.OrderByDescending(x => (0.2125 * x.R) + (0.7154 * x.G) + (0.0721 * x.B)).First();
Был ли я создан метод, который будет проходить через весь список, преобразует каждый в значения интенсивности, а затем найдет max? – theGreenCabbage
Эй, дверной стаж. Я получаю красную подчеркивание под 'Max()' следующим образом: http://puu.sh/6fhR5/0efde4bbbb.png – theGreenCabbage
Поместите это в начало файла: using System.Linq; – doorstuck
Interactive Extensions (и несколько других библиотек) включают функцию MaxBy()
, которая позволит вам найти цвет с максимальным значением указанной функции.
Например, чтобы найти самый синий цвет в списке:
// Update: Forgot MaxBy returns a list of all elements with the max value
var bluest = colors.MaxBy(c => c.B)[0];
Или, если вы не хотите использовать их реализации, вы можете реализовать MaxBy()
с точки зрения Aggregate()
:
public static T MaxBy<T, R>(this IEnumerable<T> seq, Func<T, R> selector)
where R : IComparable
{
return seq.Aggregate((x, y) =>
selector(x).CompareTo(selector(y)) < 0 ? y : x);
}
Если seq
большой, это будет работать лучше, чем сортировка, то есть O(n lg n)
.
Поскольку это плагин, который работает в части программного обеспечения под названием Grasshopper 3D, я бы хотел избежать внешних библиотек. Но - спасибо за предложение! Если у меня закончится выбор, я буду использовать это. – theGreenCabbage
Ix - это с открытым исходным кодом, поэтому вы можете брать (с атрибуцией!) Их реализацию: http://rx.codeplex.com/SourceControl/latest#Ix.NET/Source/System.Interactive/EnumerableEx.Aggregates.cs – dahlbyk
Ooh awesome - благодаря! – theGreenCabbage
- 1. Поиск минимального значения максимального кластера?
- 2. Поиск минимального и максимального эффективного
- 3. Поиск максимального и минимального времени
- 4. Поиск минимального/максимального веса дерева штейнера
- 5. Поиск минимального/максимального разрыва Fixnum? (Ruby)
- 6. C программирование Поиск минимального, максимального и среднего
- 7. Поиск близких цветов заданного цвета
- 8. Поиск цветов?
- 9. Различные цвета для максимального и минимального количества данных
- 10. Поиск минимального и максимального значений в вводимом пользователем массиве (Java)
- 11. Java: Рекурсивно Поиск минимального элемента в списке
- 12. Поиск максимального элемента в списке кортежей
- 13. Поиск максимального элемента ниже среднего в списке
- 14. Поиск минимального и максимального значения в текстуре металла
- 15. Поиск максимального и минимального значения в python с использованием циклов
- 16. Поиск минимального и максимального значений диапазона дат в sql
- 17. получение минимального и максимального значения в списке [Опция [Int или Long или Float]]
- 18. Поиск максимального и минимального элементов с использованием сравнений 3n/2?
- 19. Поиск минимального и максимального времени для нескольких человек
- 20. поиск минимального, максимального и среднего значений с другим типом символов
- 21. Поиск минимального и максимального числа между целыми числами
- 22. получение минимального и максимального даты
- 23. Как узнать местоположение максимального или минимального значения матрицы в г
- 24. поиск похожих цветов программно
- 25. C# Установка максимального/минимального возврата к Int или Float
- 26. ASP.NET встроенный атрибут проверки для указания минимального или максимального значения?
- 27. C++: определение максимального/минимального пределов для класса
- 28. Поиск минимального количества стен
- 29. Настройка минимального и максимального уровней масштабирования
- 30. Поиск максимального значения в списке Object с использованием жидкого синтаксиса
Являются ли они несопоставимыми? –
Прошу прощения, я не совсем уверен, что это значит. – theGreenCabbage
Включите ли объекты C# в свой список интерфейс 'System.IComparable'? –