この質問はチーム メンバーによってここ ( https://stackoverflow.com/questions/15881110/java-to-c-sharp-conversion ) に投稿されましたが、コミュニティに十分な情報がないため閉鎖されました。
このような質問を復活させようとする私の試みは次のとおりです。この Java 抽出物を C# に変換するにはどうすればよいですか?
Java 抽出:
PriorityQueue<PuzzleNode> openList = new PriorityQueue<PuzzleNode>
(1,
new Comparator<PuzzleNode>(){
public int compare(PuzzleNode a, PuzzleNode b){
if (a.getPathCost() > b.getPathCost())
return 1;
else if (a.getPathCost() < b.getPathCost())
return -1;
else
return 0;
}
}
);
sortedList が考えられましたが、コーディング方法がわからないため役に立ちませんでした。
また、メソッドを使用して標準リストを作成しようとしました:
List<PuzzleNode> openList = new List<PuzzleNode>();
//Method to sort the list
public int CompareFCost(PuzzleNode a, PuzzleNode b)
{
if (a.getPathCost() > b.getPathCost())
{
return 1;
}
else if (a.getPathCost() > b.getPathCost())
{
return -1;
}
else
return 0;
}//end CompareFCost
次に呼び出します: openList.Sort(CompareFCost); ただし、これは機能しません。
コードは何に使用されますか? プログラムの他の場所で設定したスコア (pathCost) に応じて、オブジェクト 'PuzzleNode' を並べ替えます。その後、while ループが実行され、リストから最初のオブジェクトが取得されます。リストは順序付けする必要があります。そうしないと、より高い pathCost を持つオブジェクトが選択され、while ループがより長く実行される可能性があります。目的は、リストからより低い pathCost を引き出すことです。
Java で動作し、残りのコードはほとんど Java に由来するため、変換をお願いします。
テイカーはいますか?さらに情報が必要な場合は、喜んでさらに話し合います。