【发布时间】:2011-05-07 03:29:55
【问题描述】:
场景
我有三个 IEnumerable 列表 - IEnumerable<Dog>、IEnumerable<Cat> 和 IEnumerable<Horse>。
我希望它们都在一个 IEnumerable<NameColor> 中。
我在每个 Dog、Cat 和 Horse 对象上定义了一个 public static explicit operator NameColor,以便我将它们转换为 NameColor
所以:
IEnumerable<NameColor> list = dogs as IEnumerable<NameColor>;
list = list.Union(cats as IEnumerable<NameColor>);
list = list.Union(horses as IEnumerable<NameColor>);
但是,这不起作用。我收到错误 Value cannot be null.
Parameter name: first 但我没有看到一个名为 first 的参数甚至是一个选项?!
【问题讨论】:
-
也许联盟需要 .First()。您确定这些列表都不是空的吗?
-
顺便说一句 - 请注意
Union与“我希望他们都在...”并不完全相同 - 您可能是指Concat。
标签: c# casting operators union