Question: I want a List of OtherObjects all belonging to certain Objects.
Is it possible to create a List like so?

```
List<Object, List<OtherObject>>

```

Or should I create a new class and do?

```
List<NewClass>

```

Or should I do something else overall? The size is dynamic so I didn't want to use an array.

How can I achieve this?

Answer: 
You want a Dictionary<>, e.g.

```
Dictionary<Object, List<OtherObject>>

```

Where `Object` is the Key and `List<OtherObject>` is the Value
You can use `Tuple<Object, List<OtherObject>>` to achieve what you want.

Tuples is for composition of properties when you don't want to create special class. You can use `Tuple<Object, AnotherObject, AnotherAnotherObject>` if you need.

Your code will be something like:

```
List<Tuple<Object, List<OtherObject>>> list;

```

and work with it:

```
foreach(var tuple in list)
{
   var object = tuple.Item1;
   var innerList = tuple.Item2;
}

```