Joshua
Joshua

Reputation: 2295

Remove an item from a LINQ collection

I think I am putting my question correctly :)

I am querying the database using LINQ to retrieve some data. Please find the code below.

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

As I mentioned in the comments, I need to remove items from the leadtasktype based on my if condition. How do I do this?

Upvotes: 4

Views: 4619

Answers (7)

Lukas Winzenried
Lukas Winzenried

Reputation: 1919

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

Upvotes: 2

Is it this what you want ?

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

Upvotes: 2

m4ngl3r
m4ngl3r

Reputation: 560

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

Upvotes: 1

Sani Huttunen
Sani Huttunen

Reputation: 24385

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

Upvotes: 1

Alex Kovanev
Alex Kovanev

Reputation: 1888

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

Upvotes: 3

Alex
Alex

Reputation: 23300

Just leave them out of your set:

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

Upvotes: 3

Paul Turner
Paul Turner

Reputation: 39615

This would seem very like another filter condition:

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

Upvotes: 5

Related Questions