2012-05-29 14 views
6

W mojej aplikacji Windows 8 napisanej przy użyciu Visual Studio 11 Express Beta, nie mogę używać ArrayList. Tu jest mój kodu:Skąd się wzięła moja tablica ArrayList? Metro app

using System.Collections; 


ArrayList al = new ArrayList(); 

błąd kompilatora:

The type or namespace name 'ArrayList' could not be found (are you missing a using directive or an assembly reference?)

Czy to coś nowego? Kocham ArrayLists :)

+4

„Biblioteka klas .NET Framework zawiera kilka nowych klas kolekcji generycznych w Systemie. Collections.Generic namespace powinny być używane w miarę możliwości zamiast klas takich jak ArrayList w przestrzeni nazw System.Collections. " http://msdn.microsoft.com/en-us/library/512aeb7t.aspx – Styxxy

+0

Twój kod może się polepszyć, jeśli nie korzystasz z ArrayLists. –

Odpowiedz

13

Dla WinRT, wyjęli wszystkie nietypowe kolekcje - jest to szybsze i sprawia, że ​​twój kod jest bardziej niezawodny. Zamiast tego użyj listy: <T>.

ps ... to nie będzie twój ostatni raz mówienie "dlaczego, do cholery, zabrali to API?" podczas migracji do WinRT

1

EDIT

Uwzględniając dokumentację ArrayList, jest ona dostępna do wersji 4.0. Sprawdź swoją wersję projektu .NET Framework. Biorąc pod uwagę, że piszesz dla Metro, musi to być przynajmniej 4,5.

Więcej szczegółów można zobaczyć na tym stanowisku:

How to use ArrayList class in metro style class library project?

I System.Collections nazw dla aplikacji Metro Style brakuje z ArrayList typu.

+0

@mattytommo: poprawione. – Tigran

+0

+1 jutro, ponieważ osiągnąłem dzienny limit głosów! Proszę oznaczyć mnie w tym poście jutro, aby mi przypomnieć :) – mattytommo

0

Nie możesz użyć aplikacji ArrayList w aplikacji WinRT, musisz użyć List.

+0

'ArrayList' nie jest dostępny dla aplikacji MetroStyle w języku' System.Collections'. – Tigran

+0

@ Tigran sprawdź ponownie moją odpowiedź :) – mattytommo

+0

W jakiej przestrzeni nazw znajdujesz ArrayList? Zgadzam się z Tigranem, nie ma go w żadnym z moich środowisk. –

Powiązane problemy