Добавить один или несколько элементов в список - PullRequest
0 голосов
/ 24 июня 2019

У меня есть этот класс:

public class Itemcollection : Item
{
    public List<Item> Items{ get; set; }
}

А теперь я добавляю элемент (ы) в Список

if (item is Itemcollection collection)
{
   list.AddRange(collection.items);
}
else
{
    list.Add(item);
}

Есть ли способ избежать проверки объекта (если (item is Itemcollection collection)) и сделать это более общим способом или чем-то похожим.

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Вместо того, чтобы иметь определенные предметы, которые имеют коллекцию Items, и те, которые не имеют, убедитесь, что все ваших предметов имеют коллекцию предметов в них. Затем просто сделайте, чтобы эта коллекция содержала один элемент, если объект логически представляет одно значение, а не набор значений. Таким образом, в вашем коде здесь (и в других местах), где вы обрабатываете элемент, вы можете обработать всех элементов, и если «все элементы» в конечном итоге становятся одним элементом, пусть будет так.

0 голосов
/ 24 июня 2019

Ну, это зависит от типа объекта item , но я думаю, что вы не можете сделать это без проверки типа. Вы можете обернуть свой код в метод и проверить это там. Другой вариант - перегрузка метода.

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