The List class is strongly typed, which means it only accepts objects which are of the same class at the list was originally defined to hold (or which are derived from that class).
For example:
class A {}
class B : A {}
class C : B {}
List<A> dataA = new List<A>();
List<B> dataB = new List<B>();
List<C> dataC = new List<C>();
dataA
can hold instances of classes A , B, and C;
dataB
can contain instances of B and C, but not A; and
dataC
can only hold instances of C, but not A or B.
So you can't create a
List<Products>
and expect it to hold anything other than
Products
instances - and you certainly can't add a
List<Products>
to it as they are not even slightly related!
If what you are trying to do is add a different List of Images (which is actually a List of strings in your example) to each Products (and please, do us all a favour and get rid of the "s" there - it implies it's a collection class instead of a single object) then you are halfway there - all you need to do is create a new instance of the images list when you create the Product:
Products prod = new Products();
prod.id = nr;
prod.title = "Product " + nr.ToString();
prod.amount = (Convert.ToInt16("2") * nr).ToString();
prod.price = (Convert.ToDouble("10,00") * nr).ToString();
prod.images = new List<string>(imgList1);
imgList1.Clear();
(The Clear to to remove the items for the next time)