我有点卡在这里,无法进一步思考。
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].2ndItem.CellId == [6].2ndItem.CellId => 完美,我们在同一个 Cell 中有一个 5 和一个 6。我们发现其他 5 和 6 一起在不同的牢房内。if[1].1stItem.CellId == ...
现在我需要检查 1 和其他 5 和 6 是否存在于前两个单元格中。
Linq 表达式可能有帮助吗?我被困在这里......我不知道......也许我采取了错误的方法。我正在尝试解决游戏数独的“隐藏对”。:)
http://www.sudokusolver.eu/ExplainSolveMethodD.aspx
非常感谢,凯夫