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

コメントで述べたように、自分の状態に基づいて、leadtasktypeからアイテムを削除する必要がありifます。どうすればよいですか?

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 == item.Value && l.LeadTypeId != 21);
于 2012-11-08T13:24:47.160 に答える
3

それらをセットから除外するだけです:

var leadtasktype = _context.LeadTypeTaskTypes
    .Where(l => 
        l.leadTypeId != 21 && 
        l.LeadTypeId == item.Value
    );
于 2012-11-08T13:24:42.090 に答える
2

これはあなたが望むものですか?

var leadtasktype = _context.LeadTypeTaskTypes.RemoveAll
   (l => l.LeadTypeId == item.Value && l.LeadTypeId == 21);
于 2012-11-08T13:34:04.387 に答える
2
var leadtasktype = _context.LeadTypeTaskTypes
    .Where(l => l.LeadTypeId == item.Value 
                && l.TaskTypeId != 21); // Exclude ID = 21.
于 2012-11-08T13:25:39.400 に答える
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 に答える