Несколько объектов в списке, C # - PullRequest
5 голосов
/ 07 июня 2010

Я ищу что-то похожее на List<T>, что позволило бы мне иметь несколько T. Например: List<TabItem, DataGrid, int, string, ...> = new List<TabItem, DataGrid, int, string, ...>().

Ответы [ 7 ]

14 голосов
/ 07 июня 2010

Если вы используете .NET 4, вы можете иметь List<Tuple<T1, T2, ...>>

В противном случае ваш выбор - реализовать собственный тип.

7 голосов
/ 07 июня 2010

Создайте класс, который определяет вашу структуру данных, а затем выполните

var list = new List<MyClass>();
1 голос
/ 07 июня 2010

Если он может иметь любой старый тип, тогда вам нужно использовать ArrayList.

Если вы заранее знаете, что у вас там будет, то вы должны либо создать свою собственную структуру, либо использоватькортеж.

1 голос
/ 07 июня 2010

Обычно у вас просто было бы List<MyClass>, где MyClass имел бы все остальные в качестве членов.

0 голосов
/ 07 июня 2010

Вместо того, чтобы пытаться в C # 4, вы можете дать шанс старой версии здесь.

Кажется, вам здесь не нужна строго типизированная коллекция, в этом случае ArrayList - лучший вариант.

0 голосов
/ 07 июня 2010

Кортежи лучше всего, если вы используете .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();
    }
}
0 голосов
/ 07 июня 2010

Похоже, вы после List<object>?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...