Предполагая, что значения min и/или max не уникальны для данного индекса столбца, вы хотите найти столбцы с определенным минимальным и максимальным значениями.
Таким образом, не обращая внимания на trickly бизнес двойного равенства, попробовать что-то вроде:
var min = 1.0;
var max = 100.0
var columns = conditionbase.Where(x => x.Value.Max() == max && x.Value.Min() == min).Select(y => y.Key).ToArray();
или, если максимум и минимум значения в индексах:
var columns = conditionbase.Where(x => x.Value[1] == max && x.Value[0] == min).Select(y => y.Key).ToArray();
Примечание: сравнения равенства из двухместных может быть сложно.
Если список содержит только макс и мин, то рекомендуется использовать тип как:
public class Limits
{
double Minimum {get; set;}
double Maximum {get; set; }
}
... Тогда ваш словарь становится:
var conditionbase = new Dictionary<int, Limits>();
намного лучше. Множество вариантов.
** "получить конкретные столбцы indexex на основе этих максимальных и минимальных значений" **. Покажите пример входных данных и выходных данных. Вы имеете в виду «показать все индексы столбцов, где я могу хранить значение X»? –
Действительно, на данный момент этот вопрос не совсем ясен. Кроме того, если каждый список будет содержать два значения (минимум и максимум), я бы предложил создать класс или структуру для представления этих двух значений, а не использовать «Список». –
Существуют ли какие-либо требования к скорости поиска? Как вы получаете исходный 'double' для поиска (могут быть подводные камни в сравнении чисел с плавающей запятой)? Кроме того, вы можете изменить «Список» на 'Tuple ' (насколько я понимаю, в списке есть только два значения)? –
Dennis