#c# #.net #comparison #system #comparison-operators
#c# #.net #сравнение #система #операторы сравнения
Вопрос:
Есть ли перечисление в System или System.Ядро, в котором есть все ComparisonOperators?
Я только что написал следующее перечисление, но оно кажется достаточно распространенным, возможно, оно уже существует.
public enum ComparisonPredicate
{
Equal,
Unequal,
LessThan,
LessThanOrEqualTo,
GreaterThan,
GreaterThanOrEqualTo
}
Я нашел один в System.Web.UI, но было бы более чем глупо вводить зависимость для этого http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.validationcompareoperator(v=VS.100).aspx
Кроме того, я уже просмотрел ExpressionType
, но мне не нужно что-то с таким широким охватом
Комментарии:
1. Для чего вам это нужно?
2. Мне также интересно, для чего вам это нужно. Перечисление должно иметь целочисленное значение. Я не понимаю, как это может быть полезно.
3. @Dykam, @Ramhound, мой непосредственный вариант использования — это метод расширения, который преобразует
Comparison<T>
вPredicate<T>
Ответ №1:
Немного поздно, но .Net 3.5 представил ExpressionType
перечисление в System.Linq.Expressions
, см. http://msdn.microsoft.com/en-us/library/bb361179 (v = против 110).aspx для получения более подробной информации.
Комментарии:
1. смотрите OP «Кроме того, я уже посмотрел на ExpressionType, но я не хочу что-то с такой широкой областью»
Ответ №2:
AFIK такой вещи не существует. Вам, вероятно, лучше пока использовать свои собственные.
Ответ №3:
Это лучший результат в Google, однако, поскольку я пишу это в 2018 году и в области .Net 4.5 , правильный ответ:
Enum.Equals();
Смотрите learn.microsoft.com/en-us/dotnet/api/system.enum.equals?view=netframework-4.7.2
Комментарии:
1. Вы предоставляете метод для сравнения двух перечислений. Это не то, что задается: в исходном вопросе запрашивается перечисление, содержащее операторы сравнения.