首页 > 解决方案 > C#:是否有 IList 的 HashSet 类比?

问题描述

当我使用未知类型的列表时,我可以像这样使用 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>());
  }
}

这显然不适用于 HashSet,因为没有像 IHashSet 这样的东西。我可以将它转换为 IEnumerable,但是我缺少我需要的 .Clear() 和 .Add() 之类的方法,因为我想将元素从任何类型的一个 HashSet 复制到该类型的另一个 HashSet。

如何使用 HashSets 做到这一点?

标签: c#listhashset

解决方案


推荐阅读