У меня есть карта класса, которая содержит ссылку на перечисление с различными типами карт.Перечисление определяется следующим образом:
enum Rank
{
Ace = 1,
Two,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
Ten,
Jack,
King,
Queen
}
У меня есть запрос LINQ, который должен взять список и проверить, есть ли они в последовательности.Таким образом, это означает, что разница между любыми двумя рангами составляет всего 1.
Запрос:
List<Card> cards = group.ToList();
cards.Sort(SortComparatorByRank);
List<Card> test = cards.Where((x, idx) =>
(idx >= 1 && (int)cards[idx - 1].CardRank == (int)x.CardRank - 1 ||
(idx < cards.Count() - 1 &&
(int)cards[idx + 1].CardRank == (int)x.CardRank + 1))).ToList();
Однако при выполнении этого я получаю следующий результат:
Как вывидите, два и четыре предположительно следуют друг за другом ???
В списке, приведенном к этому запросу, не все карты, поэтому мне нужно проверить порядок ранжирования и т. д. ...