C# 是否可以不经过迭代就从列表中进行选择?
基本上,每当我需要一个对象列表时,我都不想在列表中使用foreachC# 是否可以不经过迭代就从列表中进行选择?,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
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));