Вопрос

В чем разница между Аддранже и Конкат функции в общем списке?Рекомендуется ли одно по сравнению с другим?

Это было полезно?

Решение

У них совершенно разная семантика.

AddRange изменяет список, добавляя в него другие элементы.

Concat возвращает новую последовательность, содержащую список и другие элементы, без изменения списка.

Выберите тот, который имеет нужную вам семантику.

Другие советы

Большая разница заключается в том, что AddRange изменяет тот список, для которого он вызывается, тогда как Concat создает новый список.Следовательно, они имеют разное применение.

Также Concat — это метод расширения, который применяется к любому IEnumerable и возвращает IEnumerable, вам нужен .ToList(), чтобы получить новый список.

Если вы хотите расширить содержимое существующего списка, используйте AddRange.

Если вы создаете новый список из двух источников IEnumerable, используйте Concat с .ToList.Его качество заключается в том, что он не мутирует ни один из источников.

Если вам когда-либо понадобится перечислить содержимое только двух списков (или любого другого IEnumerable), просто используйте Concat каждый раз, это имеет то преимущество, что фактически не выделяется новая память для хранения единого списка.

Я нашел интересную статью о разнице между этими двумя структурами и сравнении их производительности...

Основная идея заключается в том, что AddRange работает намного быстрее, когда речь идет о коллекциях большого размера.

Здесь Связь

Надеюсь это поможет,

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top