Я ищу что-то подобное List<T>
, это позволило бы мне иметь несколько T
. Например: List<TabItem, DataGrid, int, string, ...> = new List<TabItem, DataGrid, int, string, ...>()
.
Если вы используете .NET 4, у вас может быть List
В противном случае вы можете реализовать свой собственный тип.
Обычно у вас есть только List
, где у MyClass
есть все остальные в качестве членов.
Если он может иметь какой-либо старый тип, вам нужно использовать ArrayList.
Если вы заранее знаете, что у вас там будет, то вам следует либо создать свою собственную структуру, либо использовать кортеж.
Создайте класс, который определяет вашу структуру данных, а затем выполните
var list = new List<MyClass>();
Кортежи лучше всего подходят, если вы используете .net 4.0. Но если вы работаете с 3.5 или ниже, то подойдет многомерный объектный массив. Вот код. Я добавил 3 различных типа в объектный массив и вывел то же самое в список. Возможно, это не лучшее решение для вашего вопроса, но его можно достичь с помощью объектного массива и списка. Взгляните на код.
class Program
{
static void Main(string[] args)
{
object[,] OneObject = new object[1,3]{ {"C Sharp",4,3.5 }};
List<object> MyList = new List<object>();
MyList.Add(OneObject);
object[,] addObject = new object[1,3]{{"Java",1,1.1}};
MyList.Add(addObject);
foreach(object SingleObject in MyList)
{
object[,] MyObject = (object[,])SingleObject;
Console.WriteLine("{0},{1},{2}", MyObject[0, 0], MyObject[0, 1], MyObject[0, 2]);
}
Console.Read();
}
}
Вместо того, чтобы пытаться использовать C # 4, вы можете дать возможность старой версии здесь.
Похоже, вам здесь не нужна строго типизированная коллекция, в этом случае ArrayList - лучший вариант.