Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 林克,有名单吗_C#_Linq - Fatal编程技术网

C# 林克,有名单吗

C# 林克,有名单吗,c#,linq,C#,Linq,我有一张这样的桌子: UserID | FruitID 4 | 34 4 | 4355 4 | 652 5 | 5677 5 | 562 4 | 562 var IsAuthorized = MyDC.FruitTable .Any(f => f.UserID == TheUserID &&

我有一张这样的桌子:

UserID | FruitID
  4    |    34
  4    |   4355
  4    |   652
  5    |   5677
  5    |    562
  4    |    562
var IsAuthorized = MyDC.FruitTable
                       .Any(f => f.UserID == TheUserID && 
                                 f.FruitID == TheFruitID);
现在,我要传递一个UserID和一个水果id,如下所示:

UserID | FruitID
  4    |    34
  4    |   4355
  4    |   652
  5    |   5677
  5    |    562
  4    |    562
var IsAuthorized = MyDC.FruitTable
                       .Any(f => f.UserID == TheUserID && 
                                 f.FruitID == TheFruitID);
这将返回一个布尔值。现在,我想为一个水果ID列表写同样的东西:我传入一个用户ID和几个水果ID,我想要一个布尔值,表示
“所有水果ID都有一个UserID==到TheUserID”

请注意,如果列表仅包含一个不匹配的元素 FruitID==f.FruitID&&f.UserID==UserID那么返回应该是 整个列表为false

如何重写查询以获取一系列的水果ID?

使用listVariable.Contains(…)


撇开示例代码无法编译这一事实不谈,我怀疑您想要的是:

// Here fruitIDs is a List<int> for the "target" fruit IDs
var isAuthorized = MyDC.FruitTable
                       .Where(u => fruitIDs.Contains(u.FruitID))
                       .All(u => u.UserID == TheUserID);
//这里的水果ID是“目标”水果ID的列表
var isAuthorized=MyDC.fructable
.其中(u=>FROUTIDS.Contains(u.FROUTIID))
.All(u=>u.UserID==TheUserID);
这将检查给定列表中的每个条目是否与指定的用户ID匹配。当然,还有其他写入方法


它不会检查原始集合中的每个条目是否都有有效的fruit ID。问题不清楚这是否是目标…

谢谢:是的,目标是检查fruit ID参数列表中的每个条目是否都有相应的用户ID。@frenchie:这不是你在问题中写的。。。基本上很难理解你到底想要什么。如果您提供示例输入和预期输出,将使理解变得相当简单。请注意,如果一个列表只包含一个与FruitID==UserID不匹配的元素,那么整个列表的返回值应该为false“我认为这已经足够描述了;如果不清楚,我道歉。@frenchie:但FruitID不会在任何方面与UserID匹配;我希望您将实际数据中的一个水果ID与输入数据中的一个水果ID进行匹配,然后将相应的用户ID与单个目标用户ID进行匹配。您的问题仍然不清楚。您在多个地方使用的“FruitID==UserID”表达式真的没有帮助;无果ID和用户ID不必匹配;只要每个记录都有f.FruitID==“列表中的一个FruitID”&&f.UserID==TheUserID。