Я хотел бы использовать linq, чтобы проверить, возвращает ли один из нескольких логических операторов true.Использование Linq для проверки правильности логического выражения
До сих пор я попытался следующие:
winningCombinations = new[,]
{
{1,2,3},
{4,5,6},
{7,8,9},
{1,4,7},
{1,4,7},
{3,6,9},
{1,5,9},
{3,5,7}
};
if (Enumerable.Range(0,7).Where(x => this.contentOf(winningCombinations[x,0]) == this.contentOf(winningCombinations[x,1]) &&
this.contentOf(winningCombinations[x,1]) == this.contentOf(winningCombinations[x,2]))
.Select(x => true).FirstOrDefault(x => x))
{
_isDone = true;
_game.wonBy(_turnOf);
}
В основном contentOf() требуется индекс в качестве параметра и возвращает символьное значение. Мой вопрос в том, есть ли способ заставить мой код работать? Я хотел бы использовать координаты, содержащиеся в «victoryCombinations», чтобы проверить, есть ли выигрышная комбинация на моей сетке (3 одинаковых символа), предпочтительно используя Linq.
Вы должны описать то, что проблема с текущим подходом и, возможно, разместить код в contentOf(), а также. –