There is more than one way to skin a cat.
Your question is asking how something is done, but it's hard to provide an accurate answer when there are many possible different approaches. I've decided to pick the most commonly used one to answer with. Keep in mind that this is not the only possible approach.
Imagine we have an “IItemRepo” interface implemented ...
If you are looking at "repository" in the context of domain-driven-design or cqrs, you should probably familiarize yourself with the definition from Domain Driven Design: Tackling Complexity at the Heart of Software, by Eric Evans. He describes common lifecycle management patterns in chapter six.
In summary: the REPOSITORY pattern provides an ...
Your questions are confusing. perhaps because your example is so lightweight
List<Item> GetItemsBySpecifedFiltersAndConditions(colour, weight, whatever)
//repo is initialised in startup for DI where required