情境
我有三个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的参数?

最佳答案

我建议:

var list = dogs.Select(d => (NameColor)d)
               .Union(cats.Select(c => (NameColor)c))
               .Union(horses.Select(h => (NameColor)h));

关于c# - C#联合运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4132272/

10-13 07:04