【发布时间】:2011-12-06 22:36:16
【问题描述】:
我有以下方法计算列表中的前 20 个数字并返回它们。
static public List<int> CalculateTop20(List<int> nums)
{
List<int> Returned = new List<int>();
int count = nums.Count;
for (int j = 0; j < 20; j++)
{
var most = (from i in nums
group i by i into grp
orderby grp.Count() descending
select grp.Key).First();
Returned.Add(most);
nums.RemoveAll(item => item == most);
}
return Returned;
}
除非我将它们返回到 main 并尝试将它们输出到控制台,它们只是出现:System.Collections.Generic.List'1[System.Int32]...
我有多种其他方法在整个程序中传递列表,但这是唯一一个给我这个问题的方法。同样,当我在计算它们时将它们输出到那里时,数字是正确的。
【问题讨论】:
-
List<T>不会覆盖它的ToString方法,所以它当然不会以漂亮的方式编写。能发一下写代码吗? -
如何在控制台中打印列表?
-
这正是列表的类型 - 你只是在为你的控制台打印做一个 .ToString() 吗?
-
只是一个简单的for循环来测试它。 for (int i = 0; i
-
那你应该试试
for (int i = 0; i < 20; i++) { Console.WriteLine(Top20[i]); }(看到最后缺少的[i]?)