Добро пожаловать в stackoverflow!
Трудно сказать без кода, но кажется, что для этого нужно использовать наследование. Полиморфизм предназначен для решения такого рода проблем.
Возможно, ваши данные имеют некоторые общие черты (например, для сортировки потребуется определенный порядок определения). Поместите их в базовый класс и унаследуйте, что в каждом из подклассов шляпа представляет данные.
В качестве примера:
class BaseItem: IComparable
{
public int CompareTo (object obj);
}
class DecimalItem: BaseItem
{
public decimal Value { get; set; }
//override CompareTo if necessary
}
Теперь вместо создания отдельного списка для каждого типа данных, вы бы составили один список BaseItems и добавили бы тот тип данных, который на самом деле относится к этому списку.
Если вы не используете подклассы для своих данных (например, они являются примитивными типами), вы, вероятно, могли бы просто сделать свой единственный список типов IComparable.