C# 必须将数据保存在列表数组[]中。首先检查两个列表数组是否相交,并给出剩余值 var data=db.User\u Register\u Events.Where(x=>x.UserTable.User\u id==“Rehman”)。选择(x=>x.EventTable.Slot.Slot\u id)。ToList(); var data2=db.User\u Register\u Events.Where(x=>x.UserTable.User\u id==“Muhammad”)。选择(x=>x.EventTable.Slot.Slot\u id)。ToList(); List data3=data.Concat(data2.ToList(); 列出AllSlots=db.Slots.Where(x=>x.Slot_Id>1).ToList();

C# 必须将数据保存在列表数组[]中。首先检查两个列表数组是否相交,并给出剩余值 var data=db.User\u Register\u Events.Where(x=>x.UserTable.User\u id==“Rehman”)。选择(x=>x.EventTable.Slot.Slot\u id)。ToList(); var data2=db.User\u Register\u Events.Where(x=>x.UserTable.User\u id==“Muhammad”)。选择(x=>x.EventTable.Slot.Slot\u id)。ToList(); List data3=data.Concat(data2.ToList(); 列出AllSlots=db.Slots.Where(x=>x.Slot_Id>1).ToList();,c#,asp.net-mvc,list,C#,Asp.net Mvc,List,我应该写什么查询来首先比较in(data3)和(AllSlots),然后将不匹配的值从AllSlots传递到数组列表视图 我尝试过这个,但它不是一个有效的解决方案: List intersect=AllSlots.Except(data3.ToAray(); 查看包含数据的变量数据(例如,11,12,13,24,55),这些基本上是插槽ID,如您在数据库模式中所看到的。 第二个变量data2存储(11,33,52,13,23) 数据和数据2都存储在列表中: List data3=data.

我应该写什么查询来首先比较in(
data3
)和(
AllSlots
),然后将不匹配的值从
AllSlots
传递到数组列表视图

我尝试过这个,但它不是一个有效的解决方案:

List intersect=AllSlots.Except(data3.ToAray();


查看包含数据的变量数据(例如,11,12,13,24,55),这些基本上是插槽ID,如您在数据库模式中所看到的。 第二个变量data2存储(11,33,52,13,23)

数据和数据2都存储在列表中:

List data3=data.Concat(data2.ToList();
还有另一个列表存储所有的(“插槽ID”):

(11,12,13,14,15,16,21,22,23,24,25,26………51,52,53,53,55,56)

List AllSlots=db.Slots.Where(x=>x.Slot_Id>1.ToList();
我想要的是。。。 我必须处理(“数据3”)和(“所有插槽”)


我必须检查/打印(“AllSlots”)列表中的所有值,除了data3值…

看起来您实际上想要分离(data1中不在data2中的所有值和data2中不在data1中的所有值)。HashSet有一个有用的函数:

new HashSet<int>(data1).SymmetricExceptWith(data2);
newhashset(data1.SymmetricExceptWith(data2);

对于{1,2}的data1和{2,3}的data2,哈希集从您的编辑中有{1,3}

,现在看起来您想要:

allSlots.Except(data1.Union(data2));
如果投诉是因为allslots存储插槽对象且
data1.Union(data2)
是INT列表,因此无法工作,则可以执行以下操作:

allSlots.Where(s => !data1.Contains(s.Slot_Id) && !data2.Contains(s.Slot_Id));

你不需要数据。如果所有插槽中都有成千上万的内容,data1或data2,则对包含项使用哈希集会更有效,但对于每个插槽中的一些较低的数十个条目,这就足够了。顺便说一句,不需要
ToList
s如果您说需要一个intersect,为什么从不使用Enumerable.intersect?方法是
ToArray()
not
ToAray()
…它可以在一个查询中解决,但我们需要
User\u Register\u Events
slot
的模型类。我已经更新了帖子,请重新检查。所以这个场景变得更清晰了:)完成了,非常感谢。