下面我检查文本值是否在LstNewItems中而不在ListOfItemsToControl中。这很好用。在if语句中我想从LstNewItems中删除与文本值匹配的行? lstNewItems是一个列表。
string name = rows[i].Cells[0].Value.ToString();
if (MyGlobals.lstNewItems.Any(x => x.sItemName == name) && !MyGlobals.ListOfItemsToControl.Any(y => y.sItemName == name))
{
//Remove the row from LstNewItems that matches the text value
}
答案 0 :(得分:1)
目前尚不清楚该系列究竟是什么。
如果它是通用List<>
,您可以这样做:
MyGlobals.lstNewItems.RemoveAt(i);
告诉我它是否有效,否则请告诉我们该集合的确切类型。
请记住,您无法修改将其用作枚举的循环内的集合。像这样:
foreach (var x in MyGlobals.lstNewItems)
{
MyGlobals.lstNewItems.Remove(x); // will throw an InvalidOperationException
}
答案 1 :(得分:0)
if (MyGlobals.lstNewItems.Any(x => x.sItemName == rows[i].Cells[0].Value.ToString() && !MyGlobals.ListOfItemsToControl.Any(y => y.sItemName == rows[i].Cells[0].Value.ToString())))
{
MyGlobals.lstNewItems.RemoveAll(item => item.sItemName == rows[i].Cells[0].Value.ToString());
}