Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.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,基本上,每当我需要一个对象列表时,我都不想在列表中使用foreach IEnumerable<int> myKeys = _context.MyTable.Where(x => x.Name == name); foreach(var key in keys) { var myObject = _context.FirstOrDefault(x => x.key == key); _context.MySecondTable.Remove(m

基本上,每当我需要一个对象列表时,我都不想在列表中使用foreach

 IEnumerable<int> myKeys = _context.MyTable.Where(x => x.Name == name);

 foreach(var key in keys)
{     
    var myObject = _context.FirstOrDefault(x => x.key == key);
   _context.MySecondTable.Remove(myObject);
}

我可能是唯一的一个,但我不明白您期望的
somelinqmethod是如何使用collectiontosearchby
方法的。你能发布你通常用于任务的代码吗?@Vache我更新了我当前使用它的方式。这仍然会迭代对象。我希望将myKeys传递给一个方法,然后调用RemoveRange()@Robert I刚才正在编辑:)检查它。但是,关于迭代版本,请注意,您去掉了
FirstOrDefault
每项数据库查询。
_context.MySecondTable.RemoveRange(myObjects);
IEnumerable<int> myKeys = _context.MyTable.Where(x => x.Name == name);

foreach(var obj in _context.MySecondTable.Where(o => myKeys.Contains(o.key))
    var myObject = _context.Remove(obj);
var myKeys = _context.MyTable.Where(x => x.Name == name);
var myObject = _context.RemoveRange(
    _context.MySecondTable.Where(o => myKeys.Contains(o.key));