Как я могу добавить элемент в коллекцию IEnumerable <T>? - PullRequest
360 голосов
/ 31 июля 2009

Мой вопрос, как указано выше. Например,

IEnumerable<T> items = new T[]{new T("msg")};
items.ToList().Add(new T("msg2"));

но ведь в нем всего 1 предмет.

Можем ли мы иметь метод, подобный items.Add(item)?

как List<T>

Ответы [ 13 ]

1 голос
/ 28 ноября 2014

Вы можете сделать это.

//Create IEnumerable    
IEnumerable<T> items = new T[]{new T("msg")};

//Convert to list.
List<T> list = items.ToList();

//Add new item to list.
list.add(new T("msg2"));

//Cast list to IEnumerable
items = (IEnumerable<T>)items;
0 голосов
/ 06 февраля 2017

Конечно, вы можете (я оставляю ваш T-бизнес в стороне):

public IEnumerable<string> tryAdd(IEnumerable<string> items)
{
    List<string> list = items.ToList();
    string obj = "";
    list.Add(obj);

    return list.Select(i => i);
}
0 голосов
/ 28 октября 2015

Самый простой способ сделать это просто

IEnumerable<T> items = new T[]{new T("msg")};
List<string> itemsList = new List<string>();
itemsList.AddRange(items.Select(y => y.ToString()));
itemsList.Add("msg2");

Затем вы можете вернуть список как IEnumerable также потому, что он реализует интерфейс IEnumerable

...