我分配了以下变量,其中x.Item
的类型为“对象”
var items = paymentList.Select(x => x.Item).Distinct();
say项包含两个值AUTO和ADVANCE。
我有一个CreditCard
类型的对象
public class CreditCard
{
public string uniqueId {get; set;}
}
我有一个列表itemsList
有信用卡。我想删除那些唯一标识“不在” items
集合中的对象。
itemsList.RemoveAll(x => x as ct_CreditCard.uniqueId not in items)
说我在itemsList
中有两个CreditCard对象,它们的uniqueId值分别为AUTO和BILL。
由于items
仅包含AUTO和ADVANCE,因此应删除具有uniqueId = BILL的CreditCard
我该如何实现?
答案 0 :(得分:1)
我认为这可行
itemList.RemoveAll(x => !items.Contains(((ct_CreditCard)x).uniqueId)
答案 1 :(得分:1)
以下内容适用于任意数量的信用卡序列,不仅适用于List<CreditCard>
var listWithoutItems = originalList
.Where(creditCard => !items.Contains(creditCard.UniqueId));
如果要用此新列表替换原始列表,则:
originalList = originalList
.Where(creditCard => !items.Contains(creditCard.UniqueId))
.ToList();
答案 2 :(得分:0)
尝试此代码
itemsList.RemoveAll(crItem => !items.Any(y => y == crItem.uniqueId));