ArrayList c = new ArrayList();
c.Add(new Continent("Africa", af));
c.Add(new Continent("America", am));
c.Add(new Continent("Asia", a));
c.Add(new Continent("Oceania", oc));
c.Add(new Continent("Europe", eu));

c.Sort();

for (int i = 0; i < c.Count; i++)
{
Console.WriteLine("{0}", c[i]);
}


output:

TP.Continent
TP.Continent
TP.Continent
TP.Continent
TP.Continent


构造函数很好,因为它排序时不会告诉我有错误

第一个元素是字符串,另一个是整数。应该没问题,但是由于某种原因不能正确打印。

最佳答案

您正在打印大陆对象,而不是它们的各个部分。您可以将循环更改为:

for (int i=0; i<c.Count; i++)
{
Console.WriteLine("{0}", c[i].name); // Or whatever attributes it has
}


或者,您可以在“ Continent”对象内添加“ ToString”函数以正确打印出来。

看起来像(在Continent对象内部):

public override string ToString()
{
return "Continent: " + attribute; // Again, change "attribute" to whatever the Continent's object has
}

关于c# - 为什么ArrayList无法正确打印?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9999103/

10-15 17:00