как передать список в качестве параметра в функцию
Вы всегда должны избегать использования List<T> в качестве параметра. Не только потому, что этот шаблон уменьшает возможности вызывающей стороны сохранять данные в другом виде сбора, но также и вызывающая сторона должна сначала преобразовать данные в List .
Преобразование IEnumerable в List стоит O (n) сложности, что абсолютно не нужно. И это также создает новый объект.
TL; DR вы всегда должны использовать правильный интерфейс, такой как IEnumerable или IQueryable зависимости от того, что вы хотите сделать со своей коллекцией. 😉
Вы можете передать его как List<DateTime>
Однако лучше использовать наиболее общий (как обычно, базовый) интерфейс, поэтому я бы использовал
Вы также можете вызвать .AsReadOnly() , прежде чем передавать список методу, если вы не хотите, чтобы метод изменял список — добавляйте или удаляйте элементы.
Как передать List<> в функцию
заранее извиняюсь за свой вопрос:
у меня есть List<>
как мне его в функцию передать и как потом его вернуть?
и можно ли вообще такое делать?
если можно меленький пример
Как передать list<string> в поток и как такой же list<string> вывести из потока?
Как передать list<string> в поток и как такой же list<string> вывести из потока в richtextbox.
как передать struct в list
Доброго времени суток. Такой вопрос: есть определенная структура, в которой есть несколько полей.
Как передать из List в DataGrid?
Есть класс с листом в котором записаны имя фамилия и возраст: public class StudentClass < .
C++ pass list as a parameter to a function
I’m trying to build a very simple address book. I created a Contact class and the address book is a simple list. I’m trying to build a function to allow the user to add contacts to the address book. If I take my code outside of the function, it works OK. However, if I put it in, it doesn’t work. I believe it’s a passing by reference vs passing by value problem which I’m not treating as I should. This is the code for the function:
I don’t get any errors however when I try to display all contacts, I can see only the original ones.
4 Answers 4
You’re passing address_book by value, so a copy of what you pass in is made and when you leave the scope of add_contact your changes are lost.
Передать массив по значению функции в C/C++
В этом посте мы обсудим, как передать массив по значению в функцию на C/C++.
Мы знаем, что аргументы функции по умолчанию передаются по значению в C. Однако массивы в C не могут быть переданы функции по значению, и мы можем изменить содержимое массива из вызываемой функции. Это связано с тем, что в функцию передается не массив, а копия указателя на его адрес в памяти. Итак, когда мы передаем массив в функцию, это будет распадаться на указатель независимо от того, объявлен ли параметр как int[] или нет.
Однако несколько трюков позволяют нам передавать массив по значению в C/C++.
1. Использование структур в C
Идея состоит в том, чтобы обернуть массив составным типом данных, таким как структуры в C. Это работает, поскольку структуры передаются в функцию по значению и не распадаются на указатели. В C++ мы можем использовать class.