Список <T>метод добавления в C # - PullRequest
0 голосов
/ 21 декабря 2010

Как я знаю. Метод добавления списка работает следующим образом.

List<string> cities = new List<string>();
cities.Add("New York");
cities.Add("Mumbai");
cities.Add("Berlin");
cities.Add("Istanbul");

Если я спроектировал структуру данных следующим образом

List<object> lstObj = new List<object>();            
if (true)  // string members
{
    cities.Add("New York");
    cities.Add("Istanbul");
}
else // List obj members here 
{
    List<object> AListObject= new List<object>();
    cities.Add(AListObject);  // how to handle this?
}

Работает ли метод List Add или нет, если я добавляю элементы разных типов в одну и ту же функцию.

Ответы [ 6 ]

1 голос
/ 21 декабря 2010

Нет смысла использовать общий список с объектом в качестве параметра типа, также можно использовать System.Collections.ArrayList.

1 голос
/ 21 декабря 2010
List<object> AListObject = new List<object>();
foreach (object o in AListObject)
{
    string s = o as string;
    if (s != null)
    {
        cities.Add(s);
    }
}

Если бы вы могли использовать LINQ из .NET 3.5, то вы могли бы сделать следующее:

List<object> AListObject = new List<object>();
cities.AddRange(AListObject.OfType<string>());
1 голос
/ 21 декабря 2010

Вы можете добавить что угодно к List<object>, поэтому если вы изменили cities на List<object>, тогда ваш код будет работать.кодировать все, что вы пытаетесь сделать.

1 голос
/ 21 декабря 2010

Поскольку вы создали список типа object, вы можете добавить к нему все, что угодно, поскольку каждый тип может быть упакован в объект.

1 голос
/ 21 декабря 2010

Вы не можете добавить List<object> к List<string>. Единственное, что вы можете добавить в список строк - это строки (или нулевые ссылки). Вы можете использовать это вместо:

List<object> cities = new List<object>();

Но это похоже на плохой дизайн. Когда вы используете object в качестве универсального типа коллекции, вы фактически теряете все преимущества безопасности типов.

Для анализа XML я бы посоветовал вам взглянуть на XmlDocument .

0 голосов
/ 21 декабря 2010

Для добавления нескольких элементов в список следует использовать метод List.AddRange .

cities.AddRange(AListObject);

Однако у вас возникнут проблемы при попытке добавить object в списокstring.

...