在c#中将一个列表添加到另一个列表
Add a list to another list in c#
我有如下列表 A
var act= (from a in _db.Activities
where a.UserID == userid
select new SchoolDetail
{
SchoolName = a.School,
SchoolCode = a.SchoolID
}).Distinct().ToList();
那我还有一个列表List B
var sch= (from s in _db.Schools
where s.UserID == userid
select new SchoolDetail
{
SchoolName = s.SName,
SchoolCode = s.SCode
}).Distinct().ToList();
现在我想将列表 B 附加到列表 A,我尝试使用 AddRange -
var schools = act.AddRange(sch);
但是我在 AddRange 行收到一条错误消息 -
Exceptions - Argument null exception
Cannot assign void to an
implicitly-typed variable
我做错了什么,我该如何解决?
谢谢!
函数"AddRange"将list sch 添加到list act 中,它是一个void,它没有return任何东西。我想你想要的是这样的:
List<...> schools = new List<...>(act);
schools.AddRange(sch);
使用 Concat 而不是 AddRange 解决了它
var schools = act.Concat(sch);
您的特定问题源于空值。您的 sch
为 null 或包含 null。而不是使用 AddRange
,它将修改一个集合,附加到另一个集合的末尾。您可能想要使用 Concat
。这将创建一个单独的集合实例,并尝试在不修改数据的情况下加入它们。所以 null
不会妨碍 concat
.
否则,要解决您的具体问题,您需要执行空值检查。
var school = ...;
var student = ...;
var sample = school.Concat(student);
var school = ...;
var student = ...;
var filter = school.Where(d => d != null);
var sample = student.AddRange(school);
我有如下列表 A
var act= (from a in _db.Activities
where a.UserID == userid
select new SchoolDetail
{
SchoolName = a.School,
SchoolCode = a.SchoolID
}).Distinct().ToList();
那我还有一个列表List B
var sch= (from s in _db.Schools
where s.UserID == userid
select new SchoolDetail
{
SchoolName = s.SName,
SchoolCode = s.SCode
}).Distinct().ToList();
现在我想将列表 B 附加到列表 A,我尝试使用 AddRange -
var schools = act.AddRange(sch);
但是我在 AddRange 行收到一条错误消息 -
Exceptions - Argument null exception
Cannot assign void to an implicitly-typed variable
我做错了什么,我该如何解决?
谢谢!
函数"AddRange"将list sch 添加到list act 中,它是一个void,它没有return任何东西。我想你想要的是这样的:
List<...> schools = new List<...>(act);
schools.AddRange(sch);
使用 Concat 而不是 AddRange 解决了它
var schools = act.Concat(sch);
您的特定问题源于空值。您的 sch
为 null 或包含 null。而不是使用 AddRange
,它将修改一个集合,附加到另一个集合的末尾。您可能想要使用 Concat
。这将创建一个单独的集合实例,并尝试在不修改数据的情况下加入它们。所以 null
不会妨碍 concat
.
否则,要解决您的具体问题,您需要执行空值检查。
var school = ...;
var student = ...;
var sample = school.Concat(student);
var school = ...;
var student = ...;
var filter = school.Where(d => d != null);
var sample = student.AddRange(school);