C#: Есть ли аналог IList для HashSets? - PullRequest
0 голосов
/ 23 апреля 2020

Когда я работаю со списком неизвестного типа, я могу использовать интерфейс IList следующим образом:

public void DoSomething(object o)
{
  if (o is IList oAsList)
  {
    foreach (object listItem in oAsList)
      Console.WriteLine(listItem.ToString());

    oAsList.Clear();

    Type typeOfList = oAsList.GetType().GetGenericArguments()[0];
    oAsList.Add(GetRandomInstanceOfType<typeOfList>());
  }
}

Это явно не работает для HashSets, так как нет ничего похожего на IHashSet. Я мог бы привести его к IEnumerable, но тогда мне не хватает таких методов, как .Clear () и .Add (), которые мне нужны, потому что я хочу скопировать элементы из одного HashSet любого типа в другой HashSet этого типа.

Как я могу сделать это с HashSets?

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