c# - 这个 "listMerging"代码可以改进吗?

标签 c# linq list

我有一个合并两个列表的方法。两个合并列表是返回列表的子类型对象列表。 “合并”是指“允许重复”。

所以 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/

相关文章:

c# - 使用 'using' 语句声明对象以备后用

entity-framework - Entity Framework 、DbSet<T>、Dispose() 性能问题

c# - 通过相同的值从另一个连接的 DataTable 更新 DataTable 的多列

c# - get_Offset 和 Offset 之间的区别?

c# - 从 lambda 表达式中检索事件名称

c# - 将 LINQ 中的 IEnumerable 数据作为参数传递给方法

窗口命令 : List files in dir & subdir WITHOUT given extensions

python - 如何在一行中输入列表的所有元素而无需在 Python 中换行

python - 更新新词典在 Python 中不起作用

c# - Web API 的静态 api key