在以下代码中:
var cats = new List<string>() {"cat1", "cat2"};
var dogs = new List<string>() {"dog1", "dog2"};
var animals = new List<Animal>();
animals = (cats.Select(x => new Animal() {Type = "Cat", Name = x}).ToList().AddRange(
dogs.Select(x => new Animal() {Type = "Dog", Name = x}).ToList())).ToList();
Run Code Online (Sandbox Code Playgroud)
最后调用ToList()是一个错误,因为AddRange()返回void.现在使用Linq类型查询时似乎不对.
我发现我可以将其更改为.Union()或.Concat()修复问题,但不应AddRange()更新,或者是否有理由将其返回无效?
您已经回答了自己的问题。如果要从两个列表中获得不同的值,请使用“联合”,如果要仅将两个列表连接,请使用Concat。将两个可枚举数合并后,您可以调用ToList()。
AddRange是List自身的一种方法,与LINQ无关。
| 归档时间: |
|
| 查看次数: |
1093 次 |
| 最近记录: |