如何合并两个 IQueryable 列表
我想在 C# 中合并两个 IQueryable 列表的记录。我尝试
IQueryable<MediaType> list1 = values;
IQueryable<MediaType> list2 = values1;
obj.Concat(obj1);
但
IQueryable<MediaType> list1 = values;
IQueryable<MediaType> list2 = values1;
obj.Union(obj1);
如果 list1
为空,则结果列表也为空。就我而言,list1
可以为空,但 list2
可以有记录。我应该如何合并它们?
I want to merge the records of two IQueryable lists in C#. I try
IQueryable<MediaType> list1 = values;
IQueryable<MediaType> list2 = values1;
obj.Concat(obj1);
and
IQueryable<MediaType> list1 = values;
IQueryable<MediaType> list2 = values1;
obj.Union(obj1);
but if list1
is empty then the resultant list is also empty. In my case either list1
can be empty but list2
can have records. How should i merge them?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您没有使用返回值 - 就像所有其他 LINQ 运算符一样,该方法不会更改现有序列 - 它返回新序列。所以试试这个:
or
Union
是一个集合操作 - 它返回不同的值。Concat
只是返回第一个序列中的项目,然后返回第二个序列中的项目;生成的序列可能包含重复的项目。您可以将
Union
视为Concat
后跟Distinct
。You're not using the return value - just like all other LINQ operators, the method doesn't change the existing sequence - it returns a new sequence. So try this:
or
Union
is a set operation - it returns distinct values.Concat
simply returns the items from the first sequence followed by the items from the second sequence; the resulting sequence can include duplicate items.You can think of
Union
asConcat
followed byDistinct
.?
还不行吗
并确保列表为空,而不是空:
还可以尝试:
Even
doesn't work?
And be sure that lists are empty, not null:
Also try:
我发现的另一个选择:
声明:
IEnumerable; usersIds = new int[0];
例如在循环内:
现在 usersIds 和 ids(不同)包含所有用户的 id 作为 IEnumerable -int-
Another option I found:
Declare:
IEnumerable<int> usersIds = new int[0];
For example inside a loop:
Now usersIds and ids(as distinct) contains the id of all users as IEnumerable -int-