>>>>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
Thanks Gregory,
I am goin to change it over so it is more flexible. The existing methods weren't my code so I was trying to implement base class methods that ultimately use them and they were all arrays. I think I got this figured out now and thanks for your help along with others.
Tim
Timothy Bryan