Я немного застрял здесь и не могу думать дальше.
public struct CandidateDetail
{
public int CellX { get; set; }
public int CellY { get; set; }
public int CellId { get; set; }
}
var dic = new Dictionary<int, List<CandidateDetail>>();
Как наиболее эффективно сравнить каждый элемент CandidateDetail с другими элементами CandidateDetail в том же словаре?
Пример: Есть три ключа для словаря: 5, 6 и 1. Следовательно, у нас есть три записи. теперь у каждой из этих ключевых записей будет связан список. В этом случае допустим, что каждое из этих трех чисел имеет ровно два элемента CandidateDetails в списке, связанном с каждым ключом. Другими словами, это означает, что у нас есть две 5, две 6 и две 1 в разных или в одних и тех же ячейках. Я бы хотел знать:
if[5].1stItem.CellId == [6].1stItem.CellId => мы получили попадание. Это означает, что у нас есть 5 и 6 в одной и той же ячейке if[5].2ndItem.CellId == [6].2ndItem.CellId => perfect. Мы выяснили, что остальные 5 и 6 находятся вместе в другой ячейке. если[1].1stItem.CellId == ...
Теперь мне нужно проверить 1 также против других 5 и 6, чтобы увидеть, существует ли он в предыдущих двух ячейках или нет.
Может ли выражение Linq помочь? Я совершенно застрял здесь... Я не знаю... Может быть, я использую неправильный подход. Я пытаюсь решить «Скрытую пару» игры Судоку. :)
http://www.sudokusolver.eu/ExplainSolveMethodD.aspx
Большое спасибо, Кейв