chcę zrobić tenC do listy <short>
List<ushort> uList = new List<ushort>() { 1, 2, 3 };
List<short> sList = uList.Cast<short>().ToList();
ale mam InvalidCastException "określonych oddanych nie jest prawidłowy."
Jak mogę szybko i skutecznie obsłużyć powyższą kolekcję?
Dziękuję.
możliwe duplikat [Puzzling Enumerable.Cast InvalidCastException] (http://stackoverflow.com/questions/445471/puzzling-enumerable-cast-invalidcastexception) – Ani
@Ani: Nie uważam tego za duplikat, ponieważ wiem, że nie możesz rzucić 'int' na' long' (mają różne rozmiary), ale spodziewam się, że rzut od 'ushort' do' short' będzie możliwe, ponieważ są tej samej wielkości. Innymi słowy, '(ushort []) (object) new short [] {0, -1}' jest całkowicie poprawny C#. – Gabe
@Gabe: To ten sam problem. '(short) ((ushort) 1)' jest poprawny C# jak jest '(long) ((int) 1)' (nadmiarowy rzut dla jasności). Problem polega na mieszaniu liczbowych konwersji i rozpakowywaniu. http://blogs.msdn.com/b/ericlippert/archive/2009/03/19/representation-and-identity.aspx – Ani