広い範囲の最初の検索アルゴリズムを迷路ソルバーとして使用したいと考えています。迷路は、TableLayoutPanelから作成されます。ハッシュテーブル内のキーに異なる名前を付けるにはどうすればいいですか
私はこのようなものがあります。今
Hashtable hash = new Hashtable();
Queue<TableLayoutPanelCellPosition> q_cellposition = new Queue<TableLayoutPanelCellPosition>();
while (q_cellposition.Count != 0)
{
TableLayoutPanelCellPosition currentPosition = q_cellposition.Dequeue();
TableLayoutPanelCellPosition left = new TableLayoutPanelCellPosition(currentPosition.Column - 1, currentPosition.Row);
Label leftN = (Label)tlp.GetControlFromPosition(left.Column, left.Row);
TableLayoutPanelCellPosition right = new TableLayoutPanelCellPosition(currentPosition.Column + 1, currentPosition.Row);
Label rightN = (Label)tlp.GetControlFromPosition(right.Column, right.Row);
hash.Add(leftN, currentPosition);
q_cellposition.Enqueue(left);
hash.Add(rightN, currentPosition);
q_cellposition.Enqueue(right);
}
は、最初の反復の後に、それは明らかにハッシュテーブルに新しいKeyValuePairを追加しようとします。しかし、新しい左Nキーと右Nキーが同じラベルであると見なします(技術的にはそうではありませんが)、キーがすでに追加されているというエラーが表示されます。ハッシュテーブルに何かを追加するたびに、キーの名前を変更する必要があると思います。私の質問は今です:私はそれを効率的にどのように行うのですか?