是否可以从没有迭代的列表中选择列表?

时间:2014-07-17 13:25:08

标签: c# linq

基本上我想在每次需要一个对象列表时停止使用foreach作为我的List。

 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);
}

linq中是否存在允许我传入键列表的方法,或者我是否一直在迭代我的键并且一次只能获取一个键?

我希望使用RemoveRange();

_context.MySecondTable.RemoveRange(myObjects);

1 个答案:

答案 0 :(得分:2)

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));