let dataA3 = [| ("A", 1.0M, -2.0M);
("A", 2.0M, -1.8M);
("A", 3.0M, -1.5M);
("B", 2.0M, -1.5M);
("B", 3.0M, -1.8M);
("C", 1.0M, 2.0M);
("C", 2.0M, 1.8M);
("C", 3.0M, 1.5M) |]
У меня есть массив кортежей, я найду квалифицированные кортежи.Условия:
Первый строковый элемент должен быть одинаковым 3 раза, в приведенном выше примере («A», _, _) и («C», _,_) квалифицированы, но ("B", _, _) нет, так как только 2 кортежа содержат "B";если число одного и того же первого элемента встречается более 3 раз, они также не указываются.
Второй десятичный элемент должен быть в порядке возрастания и быть больше 0,0M;
Третий десятичный элемент должен быть в порядке возрастания, но может быть меньше 0,0M;Например: («А», 1,0М, -2,0М);(«А», 2,0М, -1,8М);(«A», 3,0M, -1,5M) соответствуют данному условию;но ("С", 1,0М, 2,0М);("С", 2,0М, 1,8М);(«C», 3,0M, 1,5M) не подходят для этого условия, поскольку 2,0M -> 1,8M -> 1,5M в порядке убывания, а не в порядке возрастания.
Наконец, я хочу получить последние три набора из трех, которые соответствуют условиям.В приведенном выше примере я хочу, чтобы последний кортеж был («A», 3,0M, -1,5M)
let final = [| ("A", 3.0M, -1.5M) |]
Если для условия есть еще несколько кортежей, мне нужен только последний из 3кортежи для каждого отдельного первого строкового элемента.Спасибо,