枚举的两个列表的并集不会产生不同的项吗

  • 本文关键字:列表 两个 枚举 c# .net enums
  • 更新时间 :
  • 英文 :


使用

var test = new RarityEnum[] { RarityEnum.Uncommon };
var test2 = new RarityEnum[] { RarityEnum.Uncommon };
var test3 = test.Union(test2);

为什么test3只包含1项而不包含2项?

我应该如何更改它,以便它正确地生成一个新的枚举列表(即使相同的枚举值多次出现(?

我可以在Union之前强制转换为int,然后在之后强制转换回enum。。。那是最干净的吗?我觉得选角不太好看

来自Microsoft关于Union的文档:"此方法从返回集中排除重复项。这与Concat方法不同,后者返回输入序列中的所有元素,包括重复项。">

在本例中:

var test = new string[] { "cat" };
var test2 = new string[] { "cat" };
var test3 = test.Concat(test2);
var test4 = test.Union(test2);

test3最终成为{ "cat", "cat" }

test4只是{ "cat" }

最新更新