>>>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