The bug is in Print("CAN"+listCan);
You want to do Print("CAN"+item);
In other words, on each iteration of the loop you want to print the current item, not the whole list each time. If you try to print the whole list, the method ToString of the list gets called internally, and its default behavior is to print the class name, which is what you are seeing.
And yes, sumP = listCan.Skip(foundIndex).Take(Trest); should get only the prices after foundIndex. Note "after" not "greater". If it is not returning the values that you think it should be returning, I suspect that it may be due to a wrong interpretation of the meaning of "index". The index here represents the current position in the list. This means that Skip(500) simply discards the first 500 items in the list, in whatever order they happen to exist inside the list at that time. If you expected to get certain particular prices, you will need to first sort the list. Or use "Where" instead of "Skip", depending on what you are trying to achieve.