링크 목록으로 작업하고 있습니다. 이미 정의 된 항목 집합을 사용하여 ax
이라는 배열을 사용하도록 생성자를 설정했습니다. 또한 BtnAddTree_Click
을 통해 새 항목을 목록 ax
에 추가하는 입력 상자가 있기로 결정했습니다. 그러나 목록 ax
에 추가하는 대신 완전히 새로운 별도의 목록을 만듭니다. 배열 목록 ax
에 내 AddTree
을 통해 항목을 추가하려면 어떻게합니까?기존 목록에 항목 추가
public ListForTrees(IEnumerable<fruit_trees> trees)
{
foreach (fruit_trees t in trees)
{
this.AddTree(t);
}
}
public void AddTree(fruit_trees new_tree)
{
fruit_trees current = first_tree;
if (count == 0)
{
first_tree = new_tree;
last_tree = new_tree;
count = 1;
}
else if (count != 0)
{
if (new_tree.tree_price <= first_tree.tree_price)
{
new_tree.next_tree = first_tree;
first_tree = new_tree;
}
else if (new_tree.tree_price >= last_tree.tree_price)
{
last_tree.next_tree = new_tree;
last_tree = new_tree;
}
else
{
while (new_tree.tree_price > current.next_tree.tree_price)
{
current = current.next_tree;
}
new_tree.next_tree = current.next_tree;
current.next_tree = new_tree;
}
count++;
}
}
}
ListForTrees mainlist = new ListForTrees();
private void BtnGo_Click(object sender, EventArgs e)
{
fruit_trees[] ax = { new fruit_trees("cherry", 48, 12.95, 3),
new fruit_trees("pine", 36, 9.95, 8),
new fruit_trees("oak", 60, 14.95, 2),
new fruit_trees("peach", 54, 19.95, 3),
new fruit_trees("pear", 36, 11.85, 2),
new fruit_trees("apple", 62, 13.45, 5)
};
mainlist = new ListForTrees(ax);
fruit_trees current = mainlist.first_tree;
while (current != null)
{
current = current.next_tree;
}
}
}
}
시료를 훨씬 작게 만드십시오. 문제가 무엇인지 알기가 매우 어렵습니다 ... 코드를 검토하고 주석을 달고 싶다면 - codereview.stackexchange.com –
왜 모든 클래스 코드를 첨부해야합니까? BtnAddTree_Click 메서드가 충분하지 않습니까? – Harry