2014-09-25 3 views
-1

Я новичок в программировании на C#. Я пытаюсь создать программу лотереи (WinForm), которая принимает номера игроков и имя & помещает их в ArrayList. У меня возникают проблемы с сравнением массива чисел лотереи с массивом каждого игрока в ArrayList. Например:Сравнение массива с другим массивом в ArrayList

public class Player 
{ 
    public String name; 
    public Int32[] playerNbrs = new Int32[6]; 
} 

public class Data 
{ 
    public static ArrayList arrayPlayers = new ArrayList(); 

    public static int[] lotteryNbrs = new int[6]; 
} 

Я знаю, что я должен использовать SequenceEqual, но у меня возникают проблемы извлечения массива каждого игрока в ArrayList и сравнивая его с int[] lotteryNbrs!

Любые советы приветствуются!

+1

Почему это 'ArrayList' используются в первую очередь? Лучше всего кодировать общие типы (например, «Список »), и вы избегаете кастинга (и в случае типов значений, бокса). Поскольку общие коллекции будут реализовывать общий «IEnumerable », Linq будет прост в применении. –

+0

Игрок выигрывает, если его номера не совпадают с порядковыми номерами извлеченных номеров? Я имею в виду 'Player1 = 1,2,3,4,5,6 LotteryNumbers = 6,5,4,3,2,1' Player1 побеждает? – Steve

ответ

1

Вы можете сделать это с помощью метода OfType так:

// if theWinner is null it means there is no winner 
var theWinner = arrayPlayers 
     .OfType<Player>() 
     .FirstOrDefault(x => x.playerNbrs.SequenceEqual(lotteryNbrs)); 

Кстати, никогда не использовать ArrayList. Используйте сильно типизированных коллекции как List<Player> вместо ...

Edit: В том случае, когда есть более одного победителя:

var theWinners = arrayPlayers 
     .OfType<Player>() 
     .Where(x => x.playerNbrs.SequenceEqual(lotteryNbrs)); 
+0

Я слишком придирчивый, я знаю, но победитель может быть более одного :-) – Steve

+0

@Steve добавил, что тоже –

+0

@ Selman22: Спасибо человеку. Это именно то, что я искал! Спасибо также за совет. Думаю, мой учитель не обращал внимания на преимущества List over ArrayList. Я буду помнить об этом! – sWo

Смежные вопросы