C# équivalent pour java arraylist soutenir obtenir, de fixer et d'enlever certains Index
Je suis un programmeur Java, j'ai utilisé un Java ArrayList
avant et maintenant je veux avoir quelque chose comme ça en C#. Certaines des options que j'ai besoin sont dans ce code Java:
String[] strs = new String[]{"str1" , "str2" , "str3" , "str4"};
ArrayList arrayList = new ArrayList(35);
arrayList.add(strs[0]);
arrayList.add(strs[1]);
arrayList.remove(0);
arrayList.set(0, strs[2]);
String s = (String) arrayList.get(1);
J'ai utilisé le C# ArrayList
et LinkedList
, mais ils n'ont pas ces options simples que j'ai besoin. Est-il une autre option en C# à l'appui de l'accès à des objets avec des index, l'insertion et le retrait de certains index?
Utilisation
wow c'est déroutant; aujourd'hui, il est commun de penser à une Liste comme une abréviation pour une Liste Liée, plutôt que d'une zone contiguë de colection.
List<T>
,List[index]
et List.RemoveAt
.wow c'est déroutant; aujourd'hui, il est commun de penser à une Liste comme une abréviation pour une Liste Liée, plutôt que d'une zone contiguë de colection.
OriginalL'auteur sajad | 2012-09-09
Vous devez vous connecter pour publier un commentaire.
utilisation
List <T>
ArrayLists en c# viens de le pré-générique de l'ère tho. Depuis C# 2.0, nous avons générique collections,
List <T>
être un exemple de cela. Comme le commentaire sur cette réponse dit, si vous utilisez une liste de tableaux, les éléments que vous mettez dans la liste de tableaux devront être mis en boîte (àObject
, parce que c'est la seule chose qu'un ArrayList prend comme données d'entrée). Si vous souhaitez accéder, par la suite, ils devront être explicitement "unboxed", à l'instar de ce que vous avez fait dans votre question. ( -->String s = (String) arrayList.get(1);
)de l'utilisation de générique collections (comme
List <T>
), il n'y a pas de boxe de plus, que le compilateur sait quel type de données de la liste sera composée de. Dans ce cas, les Chaînes de caractères.Vous pouvez également avoir un
List<int>
,List<char>
, ouList<whatever>
, et vous pouvez utiliser les mêmes fonctionnalités d'indexation sur eux.ArrayList
est pas recommandé, car il est non-génériques et les causes de la boxe.merci!!!! tout d'abord j'ai pensé que LinkedList est plus avancé que le pur Liste et je n'ai pas remarque.
ouais j'allais le faire. édité en dès maintenant!
OK... j'ai compris le générique types de données sont héritées de C et sont équivalentes aux modèles en C et C++. Mais non générique types de données sont comportés comme des objets et de la nécessité de conversion de type. Merci!!!!
Voici les différences entre C# et java génériques et C modèles: stackoverflow.com/a/31929/284240.
OriginalL'auteur Thousand
Utilisation
List<T>
...........................................qui a
Add
Remove
,RemoveAt
indexeurs commelist[i]
etc.OriginalL'auteur L.B