4

我想我的问题是正确的:)

我正在使用 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 中删除项目。我该怎么做呢?

4

7 回答 7

5

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

var leadtasktype = _context.LeadTypeTaskTypes
    .Where(l => l.LeadTypeId == item.Value)
    .Where(l => l.TaskTypeId != 21); // Exclude ID = 21.
于 2012-11-08T13:23:59.737 回答
3

只需将它们排除在您的设置之外:

var leadtasktype = _context.LeadTypeTaskTypes
    .Where(l => 
        l.leadTypeId != 21 && 
        l.LeadTypeId == item.Value
    );
于 2012-11-08T13:24:42.090 回答
3
var leadtasktype = _context.LeadTypeTaskTypes.Where(l => l.LeadTypeId == item.Value && l.LeadTypeId != 21);
于 2012-11-08T13:24:47.160 回答
2
var leadtasktype = _context.LeadTypeTaskTypes
    .Where(l => l.LeadTypeId == item.Value 
                && l.TaskTypeId != 21); // Exclude ID = 21.
于 2012-11-08T13:25:39.400 回答
2

这是你想要的吗?

var leadtasktype = _context.LeadTypeTaskTypes.RemoveAll
   (l => l.LeadTypeId == item.Value && l.LeadTypeId == 21);
于 2012-11-08T13:34:04.387 回答
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);
                    }
                }
于 2012-11-08T13:23:22.887 回答
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);
  }
}
于 2012-11-08T13:25:00.050 回答