Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
String collection versus string array
Message
De
18/08/2009 02:06:30
 
 
À
17/08/2009 18:07:23
Timothy Bryan
Sharpline Consultants
Conroe, Texas, États-Unis
Information générale
Forum:
ASP.NET
Catégorie:
Code, syntaxe and commandes
Divers
Thread ID:
01418535
Message ID:
01418587
Vues:
39
>>>Hi all,
>>>
>>>I was just pondering the use of List collection versus a string array when used as a simple collection of string items. For instance how would the reliability of problems be if I did this:
>>>
>>>List<string> myList = new List<string>
>>>myList.Add("One");
>>>myList.Add("Two");
>>>etc..
>>>
>>>if (myList.Count > 0)
>>> int mycount = myList.Count;
>>>
>>>versus
>>>
>>>string[] myStrings = new string[];
>>>myStrings[0] = "One";
>>>myString[1] = "Two";
>>>etc;
>>>
>>>if (myString.Length > 0)
>>>  int mycount = myString.Length;
>>>
>>>
>>>The reason for my question is I have some methods that expect a string array to be passed in. I would much rather create my arguments out of collections but I would have to convert them all some how or re-write the methods that use a string array.
>>>
>>>By the way, what is the best way to convert from a collection to an array - both of strings of course?
>>>
>>>Tim
>>
>>Tim,
>>
>>You could have your methods to expect/accept an IEnumerable(String). That way they would accept both arrays and collections
>>
>>No need to convert anything - at all
>>
>>ps: the IEnumerable(T).Count is slower since it has to traverse/enumerate the whole enumerator
>
>Oh, now that is a great idea. Thanks. The part of the question I only eluded to was this. Is there a clear definition somewhere that would indicate when you should use which type?
>Thanks again
>Tim

hi Tim,

Only my 2 cents ...
MyMethod(IEnumerable<String> items)
works with an interface.
It provides more flexibility in that it accepts arrays, lists and anything that implements IEnumerable(String). You need only MyMethod with one signature vs a signature per type (array, list, ..)

If you look at the constructor of the collectiions (list/queue/stack/.. ) they all have a constructor that accepts an IEnumerable(T) to initalize
Gregory
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform