c # – Refactor if the statements that check different conditions

Preface: I have examined the other related questions before creating this one, but I think those solutions were not applicable to my situation. I admit that you may not have understood a possible solution (if any).

I am working on the refactoring of an old poker game that I created, which is a .NET Framework console application, and I found this method.

                /// 
    /// Evaluate the value of the player's hand and the hand of the computer.
/// 
    /// The current hand of the computer.
    /// The current hand of the player.
    /// Returns true if the player won and false if the player lost. This value is stored in the variable bool won.
    private static bool CompareHands (SuperCard[] pComputerHand, SuperCard[] pPlayerHand)
{
// Stores the value of the player and the hands of the computer.
int playerHandValue = 0;
int computerHandValue = 0;

// Evaluate the value of the computer hand
foreach (SuperCard in pComputerHand)
{
computerHandValue + = (int) card.CardRank;
}

// Evaluate the value of the player's hand
foreach (SuperCard in pPlayerHand)
{
playerHandValue + = (int) card.CardRank;
}

// If there is a royal flush in the hand of the computer and in the hand of the player, the player loses.
if (PokerHands.RoyalFlush (pPlayerHand) and PokerHands.RoyalFlush (pComputerHand))
{
Console.WriteLine (" nBoth players have a royal flush!");
false return;
}

// If there is a royal flush in the player's hand, the player won.
if (PokerHands.RoyalFlush (pPlayerHand))
{
Console.WriteLine (" nYou have a royal flush!");
true returns
}

// If there is a royal flush in the hand of the computer, the player loses.
if (PokerHands.RoyalFlush (pComputerHand))
{
Console.WriteLine (" nThe computer has a real ladder!");
false return;
}

#region Straight Flush
// If there is a straight flush in the hand of the computer and in the hand of the player, the player loses.
if (PokerHands.StraightFlush (pPlayerHand) and PokerHands.StraightFlush (pComputerHand)
{
Console.WriteLine (" nBoth players have a straight flush!");
false return;
}

// If there is a straight flush in the player's hand, the player won.
if (PokerHands.StraightFlush (pPlayerHand))
{
Console.WriteLine (" nIt has a colored ladder!");
true returns
}

// If there is a straight flush in the hand of the computer, the player loses.
if (PokerHands.StraightFlush (pComputerHand))
{
Console.WriteLine (" nThe computer has a straight flush!");
false return;
}
#endregion


#region Four Of A Kind
// If there is a four of a kind in the hand of the computer and in the hand of the player, the player loses.
if (PokerHands.FourOfAKind (pPlayerHand) and PokerHands.FourOfAKind (pComputerHand))
{
Console.WriteLine (" nBoth players have a four of a kind!");
false return;
}

// If there is a four of a kind in the player's hand, the player won.
if (PokerHands.FourOfAKind (pPlayerHand))
{
Console.WriteLine (" nYou have a four of a kind!");
true returns
}

// If there is a four of a kind in the hand of the computer, the player loses.
if (PokerHands.FourOfAKind (pComputerHand))
{
Console.WriteLine (" nThe computer has four of a kind!");
false return;
}
#endregion


#region Full House
// If there is a full house in the hand of the computer and in the hand of the player, the player loses.
if (PokerHands.FullHouse (pPlayerHand) and PokerHands.FullHouse (pComputerHand))
{
Console.WriteLine (" nBoth players have a full house!");
false return;
}

// If there is a full house in the player's hand, the player won.
if (PokerHands.FullHouse (pPlayerHand))
{
Console.WriteLine (" nYou have a full house!");
true returns
}

// If there is a four of a kind in the hand of the computer, the player loses.
if (PokerHands.FullHouse (pComputerHand))
{
Console.WriteLine (" nThe computer has a full house!");
false return;
}
#endregion


#region Flush
// If there is a color in the hand of the player and in the hand of the computer, the player lost.
if (PokerHands.Flush (pPlayerHand) && PokerHands.Fush (pComputerHand)
{
Console.WriteLine (" nBoth the players have a color!");
false return;
}

// If there is a color in the player's hand, the player won.
if (PokerHands.Flush (pPlayerHand))
{
Console.WriteLine (" nYou have a color!");
true returns
}

// If there is a color in the hand of the computer, the player lost.
if (PokerHands.Flush (pComputerHand))
{
Console.WriteLine (" nThe computer has a color!");
false return;
}
#endregion


#region straight
// If there is a straight line in the hand of the computer and in the hand of the player, the player loses.
if (PokerHands.Straight (pPlayerHand) and PokerHands.Straight (pComputerHand))
{
Console.WriteLine (" nBoth players have a ladder!");
false return;
}

// If there is a ladder in the player's hand, the player won.
if (PokerHands.Straight (pPlayerHand))
{
Console.WriteLine (" nYou have a ladder!");
true returns
}

// If there is a ladder in the hand of the computer, the player loses.
if (PokerHands.Straight (pComputerHand))
{
Console.WriteLine (" nThe computer has a ladder!");
false return;
}
#endregion


#region Three Of A Kind
// If there is a trio in the hand of the computer and in the hand of the player, the player loses.
if (PokerHands.ThreeOfAKind (pPlayerHand) and PokerHands.threeOfAKind (pComputerHand)
{
Console.WriteLine (" nBoth players have three of a kind!");
false return;
}

// If there is a trio in the player's hand, the player won.
if (PokerHands.ThreeOfAKind (pPlayerHand))
{
Console.WriteLine (" nYou have a three of a kind!");
true returns
}

// If there is a trio in the hand of the computer, the player loses.
if (PokerHands.ThreeOfAKind (pComputerHand))
{
Console.WriteLine (" nThe computer has three of a kind!");
false return;
}
#endregion


#region two pairs
// If there are two pairs in the hand of the computer and in the hand of the player, the player loses.
if (PokerHands.TwoPair (pPlayerHand) and PokerHands.TwoPair (pComputerHand))
{
Console.WriteLine (" nBoth players have two pairs!");
false return;
}

// If there are two pairs in the player's hand, the player won.
if (PokerHands.TwoPair (pPlayerHand))
{
Console.WriteLine (" nYou have a pair of two!");
true returns
}

// If there are two pairs in the hand of the computer, the player loses.
if (PokerHands.TwoPair (pComputerHand))
{
Console.WriteLine (" nThe computer has two pairs!");
false return;
}
#endregion


#region a couple
// If there is a pair in the hand of the computer and in the hand of the player, the player loses.
if (PokerHands.OnePair (pPlayerHand) and PokerHands.OnePair (pComputerHand))
{
Console.WriteLine (" nBoth players have a pair!");
false return;
}

// If there is a pair in the player's hand, the player won.
if (PokerHands.OnePair (pPlayerHand))
{
Console.WriteLine (" nYou have a pair!");
true returns
}

// If there is a pair in the hand of the computer, the player loses.
if (PokerHands.OnePair (pComputerHand))
{
Console.WriteLine (" nThe computer has a pair!");
false return;
}
#endregion

// If the value of the player's hand is greater than the value of the hand of the computer, the player won.
if (playerHandValue> computerHandValue)
{
true returns
}

// If the value of the player's hand is less than or equal to the value of the hand of the computer, the player lost.
if (playerHandValue <= computerHandValue)
{
false return;
}

// Satisfies all code paths must return a value error.
plus
{
false return;
}


} // End of Compare Hands ()     

This is what the class diagram for the project looks like:
Diagram of the poker class

This is what the console output looks like:
Console output

My question is whether it is possible to extract a method (or several) of these affirmations if, and whenever possible, how could I do it? I also appreciate any other advice I can offer, such as that the regions are bad, for example.