从LINQ集合中删除项目

时间:2012-11-08 13:21:51

标签: c# asp.net .net visual-studio-2010 linq

我想我正确地提出了我的问题:)

我使用LINQ查询数据库以检索一些数据。请找到以下代码。

var leadtasktype = _context.LeadTypeTaskTypes.Where(l => l.LeadTypeId == item.Value);

foreach(LeadTypeTaskType l in leadtasktype){
    if (l.TaskTypeId == 21)
    {
        //I need to remove an item which has the tasktype id 21
    }
}

正如我在评论中提到的,我需要根据if条件从leadtasktype中删除项目。我该怎么做?

7 个答案:

答案 0 :(得分:5)

这看起来非常像另一个过滤条件:

var leadtasktype = _context.LeadTypeTaskTypes
    .Where(l => l.LeadTypeId == item.Value)
    .Where(l => l.TaskTypeId != 21); // Exclude ID = 21.

答案 1 :(得分:3)

将它们从你的套装中删除:

var leadtasktype = _context.LeadTypeTaskTypes
    .Where(l => 
        l.leadTypeId != 21 && 
        l.LeadTypeId == item.Value
    );

答案 2 :(得分:2)

var leadtasktype = _context.LeadTypeTaskTypes.Where(l => l.LeadTypeId == item.Value && l.LeadTypeId != 21);

答案 3 :(得分:2)

var leadtasktype = _context.LeadTypeTaskTypes
    .Where(l => l.LeadTypeId == item.Value 
                && l.TaskTypeId != 21); // Exclude ID = 21.

答案 4 :(得分:2)

这是你想要的吗?

var leadtasktype = _context.LeadTypeTaskTypes.RemoveAll
   (l => l.LeadTypeId == item.Value && l.LeadTypeId == 21);

答案 5 :(得分:1)

var leadtasktype = _context.LeadTypeTaskTypes.Where(l => l.LeadTypeId == item.Value);

var newData = leadtasktype;

                foreach(LeadTypeTaskType l in leadtasktype){
                    if (l.TaskTypeId == 21)
                    {
                        newData.Remove(l);
                    }
                }

答案 6 :(得分:1)

var leadtasktype = _context.LeadTypeTaskTypes.Where(l => l.LeadTypeId == item.Value);

for (var i = 0; i < leadtasktype.Count; i++)
{
  if (leadtasktype[i].TaskTypeId == 21)
  {
    leadtasktype.RemoveAt(i);
  }
}