Создать список из другого списка

Скажем, у меня есть:

class Plus5 {
    Plus5(int i) {
         i+5;
     }
}
List<int> initialList = [0,1,2,3]

Как я могу создать из initialList другой список, вызывающий конструктор Plus5() для каждого элемента initialList.

Здесь что-то лучше, чем следующее?

List<Plus5> newList = new List<Plus5>();
initialList.ForEach( i => newList.Add(Plus5(int)));

Ответ 1

Как я могу создать, из initialList, другой список, вызывающий Plus5() конструктор для каждого элемента initialList?

Итак, результат List<Plus5> newList и вы хотите создать новый Plus5 для каждого int в initialList:

List<Plus5> newList = initialList.Select(i => new Plus5(i)).ToList();

Если вы хотите выполнить микро-оптимизацию (сохранение памяти):

List<Plus5> newList = new List<Plus5>(initialList.Count);
newList.AddRange(initialList.Select(i => new Plus5(i)));

Ответ 2

Используйте LINQ, чтобы добавить 5 к каждому номеру в вашем списке.

var result = initialList.Select(x => x + 5);

Ответ 3

Вы можете использовать LINQ как указано выше.

var result = initialList.Select(x => x + 5).ToList();

Если у вас есть метод (например, Plus5), он будет выглядеть так

int Plus5(int i)
{
    return I + 5;
}

var result = initialList.Select(Plus5).ToList();

Ответ 4

List<Plus5> result = new List<Plus5>(InitialList.Select(x=>new Plus5(x)).ToList()));