У меня есть класс, как это:нахождения последовательных моделей объектов в виде списка с особыми свойствами
public class TestResults
{
public String TestName {get;set;}
public Int32 StudentID {get;set;}
public Decimal Score {get;set;}
public Date TestTaken {get;set;}
}
Так некоторые объекты микрофон выглядеть следующим образом:
test.TestName = "Big Important Test";
test.StudentID = 17;
test.Score = 0.75M;
test.TestTaken = "1/1/2015";
tests.add(test);
test.TestName = "Big Important Test";
test.StudentID = 12;
test.Score = 0.89M;
test.TestTaken = "1/1/2015";
tests.add(test);
test.TestName = "Sneaky Pop Quiz in Chemistry";
test.StudentID = 17;
test.Score = 0.97M;
test.TestTaken = "2/1/2015";
tests.add(test);
test.TestName = "Sneaky Pop Quiz in Chemistry";
test.StudentID = 17;
test.Score = 0.97M;
test.TestTaken = "2/1/2015";
tests.add(test);
То, что я пытаюсь определить, что-то вроде «Для каждого ученика, покажите мне студентов с большими прыжками в их счетах?» I asked a similar question a while back in the dba.stackexchange.com world и использовали функцию LEAD, но теперь я хотел бы переместить логику в C#.
Так конкретный вопрос, который я хотел бы кодировать бы (в качестве примера):
Покажите мне студентов, которые уже выпрыгнул из диапазона 60 и 70 процентов в диапазоне 90.
Я знаю, что могу написать rat's nest of loops and branching logic, но было интересно, есть ли более элегантный и более комплексные способы идентификации последовательностей паттернов в LINQ/C# земли.
Я слышал, как люди говорили о F #, но не имеют практического опыта с этим. Кроме того, я думаю, что «сопоставление шаблонов», о котором я говорю, немного больше, чем некоторые из simple string-pattern-matching. Я продолжаю работать.