C#Void使用List.AddRange()列出类型转换错误

时间:2017-06-25 23:38:23

标签: c# list xamarin typeerror

我有两个列表,我填充然后尝试连接在一起,但是我得到一个无效的列表转换错误

public async Task<List<riskregister_hazard_template>> GetCategory(string _level1, string _level2)
    {

     List<riskregister_hazard_template> categories;
     List<riskregister_hazard_template> secondChunk;

     categories = await riskTable.Where(r => r.level_1 == _level1).Where(r => r.level_2 == _level2).ToListAsync();
     secondChunk = await riskTable.Skip(50).Where(r => r.level_1 == _level1).Where(r => r.level_2 == _level2).ToListAsync();


     List<riskregister_hazard_template> newList = categories.AddRange(secondChunk);

     return newList;
    }

我在这里缺少什么?

1 个答案:

答案 0 :(得分:5)

List<T>.AddRange(IEnumerable<T> collection)只会将参数中的所有项添加到调用者集合中,这与List<T>.Add(T item)的工作方式类似,你没有获得任何返回值,集合是只是更新。

只需单独行:

categories.AddRange(secondChunk);
List<riskregister_hazard_template> newList = categories;

或者,如果您不想要引用类型行为:

categories.AddRange(secondChunk);
List<riskregister_hazard_template> newList = new List<riskregister_hazard_template>(categories.Concat(secondChunk));