Przekopiowanie elementów List<A> do List<B<A>>

0

Cześć,
mam dwie klasy typu:

	public class A
	{
		public int parA;
		public string text = "";
	}

	public class B<T>
	{
		public B() { }
		public B(T value)
		{
			Value = value;
		}
		public T Value;
		public int parB;
	}

Mam listę obiektów typu A tj.

List<A> lista_a = new(N);

A teraz chciałbym zrobić z tej listy inną listę obiektów typu B<A>, które zawierają w sobie elementy A tj.

List<B<A>> lista_b = new(lista_a.Count);

Znacie jakiś ładniejszy, czytelniejszy, bardziej przejrzysty, wydajniejszy etc. sposób przekopiowania elementów z jednej listy do drugiej niż to co poniżej?

for(var i=0; i<lista_a.Count; ++i)
{
	var tmp = new B<A>(lista_a[i]);
	//lub
	//var tmp = new B<A>();
	//tmp.Value = lista_a[i];
	tmp.parB = lista_a[i].parA;
	lista_b.Add(tmp);
}

Wydaje mi się, że gdzieś kiedyś widziałem sposób, aby to ładniej zapisać bez pętli, ale nie mogę tego znaleźć.

4

Zapoznaj się z linq.

5

var b = lista_a.Select(x => new B<A>(x));
(jak będziesz akceptować odpowiedź to proszę tą powyżej, bo ja dałem tylko gotowca w oparciu o jego post) :) Linq to fajna sprawa i polecam zagłębić się w to bardziej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1