我有一个合并两个列表的方法。两个合并列表是返回列表的子类型对象列表。 “合并”是指“允许重复”。
所以 Sub1 和 Sub2 类型是 Sup1 类型的子类型。
这是我的代码
var listSub1 = new List<Sub1>(); //With some content added..
var listSub2 = new List<Sub2>(); //With content too..
var listToReturn = new List<Sup1>();
listToReturn.AddRange(listSub1.Select(item => item as Sup1).ToList());
listToReturn.AddRange(listSub2.Select(item => item as Sup1).ToList());
return listeToReturn;
它工作正常,但我想知道这是否是合并和转换列表的最佳方式。
最佳答案
你可以写
var newList =
listSub1.Cast<Sup1>()
.Concat(listSub2.Cast<Sup1>()).ToList();
请注意,Union
的使用不正确,因为它将确保“相等”的对象只会出现一次。
关于c# - 这个 "listMerging"代码可以改进吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8502873/