Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что лучше CopyTo или ArrayTo? / 5 сообщений из 5, страница 1 из 1
12.02.2005, 10:50
    #32912775
serkir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше CopyTo или ArrayTo?
Допустим, есть такой код
public class Test
{
ArrayList list= new ArrayList();
public Test() {
list.Add("name1");
list.Add("name2");
}
public string[] CopyTo()
{
string[] names= new string[list.Count];
list.CopyTo(names);
return names;
}
public string[] ToArray()
{
return (string[])list.ToArray(typeof(string));
}
}

Всегда мучаюсь вопросом, как лучше использовать вывод коллекции, как это сделано СopyTo() или ToArray(). Оба правилные. Последнее, конечно изящнее.. Но не садит ли он perfomance( быстродействие)?
...
Рейтинг: 0 / 0
12.02.2005, 11:44
    #32912804
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше CopyTo или ArrayTo?
лучше всего - поставь себе нормальный профайлер и что-нибудь типа .Net Reflector. вот результат от reflector'a для ArrayList - реализация методов CopyTo и ToArray:

Код: plaintext
1.
2.
3.
4.
5.
public virtual Array ToArray(Type type)
{
  Array array1 = Array.CreateInstance(type, this._size);
  Array.Copy(this._items, 0, array1, 0, this._size);
  return array1;
}

Код: plaintext
1.
2.
3.
public virtual void CopyTo(Array array, int arrayIndex)
{
  Array.Copy(this._items, 0, array, arrayIndex, this._size);
}

выводы очевидны ...
...
Рейтинг: 0 / 0
12.02.2005, 12:07
    #32912817
serkir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше CopyTo или ArrayTo?
Кузя, cпасибо за профилирование
Все-таки вопрос остался ..
Что быстрее
new string[size_] или Array.CreateInstance(typeof(string), size_) ?
Утверждаю, что первое..
...
Рейтинг: 0 / 0
12.02.2005, 12:11
    #32912819
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше CopyTo или ArrayTo?
рефлексия работает значительно (!!!) медленнее прямых вызовов. поэтому new string[size] - отработает быстрее.
...
Рейтинг: 0 / 0
12.02.2005, 12:18
    #32912826
serkir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше CopyTo или ArrayTo?
Cогласен. Вопрос закрыт. За изящество надо платить..жаль, что так "значительно (!!!)"
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что лучше CopyTo или ArrayTo? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]