在python中我试图做string[]
,跳过第一个元素,然后返回def smallest(arr)
arr_collection = []
arr.each_with_index do |num, index|
unless index == 0
arr.unshift(num)
arr.delete_at(index+1)
#p arr #when I print this, I get the result I want
arr_collection << arr #when I push this into an array, and return that array below, I just get duplicate values
arr.insert(index+1, num)
arr.shift
end
end
return arr_collection #why do I get a return value inconsistent with the values I printed in the each block
end
print smallest([2,6,1,2,3,5]) #[1,2,6,2,3,5]**
的其余部分。最好的方法是什么?
答案 0 :(得分:6)
现在是了解LINQ的好时机 - 您希望Skip(1)
跳过第一个元素。然后,如果确实需要,可以使用ToArray
创建数组。例如:
string[] original = { "a", "b", "c" };
IEnumerable<string> skippedFirst = original.Skip(1);
foreach (string x in skippedFirst)
{
Console.WriteLine(x); // b then c
}
string[] skippedFirstAsArray = skippedFirst.ToArray();