检查变量是否已存在对象

问题描述 投票:0回答:3

我有一个var变量分配如下,其中x.Item的类型为'对象'

var items = paymentList.Select(x => x.Item).Distinct();

说项目包含,两个值AUTO和ADVANCE。

我有一个CreditCard类型的对象

public class CreditCard
{
   public string uniqueId {get; set;}
}

我有一个名单itemsList有CreditCard。我想删除那些uniqueId“不在”items集合中的人。

 itemsList.RemoveAll(x => x as ct_CreditCard.uniqueId not in items)

假设我在itemsList中有两个CreditCard对象,其uniqueId值为AUTO和BILL。

它应该删除具有uniqueId = BILL的CreditCard,因为items只包含AUTO和ADVANCE

我怎样才能实现它?

c# linq casting where
3个回答
1
投票

我认为这可行

   itemList.RemoveAll(x => !items.Contains(((ct_CreditCard)x).uniqueId)

1
投票

以下适用于任何可枚举的CreditCards序列,不仅适用于List<CreditCard>

var listWithoutItems = originalList
   .Where(creditCard => !items.Contains(creditCard.UniqueId));

如果您想用这个新列表替换原始列表:

originalList = originalList
               .Where(creditCard => !items.Contains(creditCard.UniqueId))
               .ToList();

0
投票

试试这个代码

itemsList.RemoveAll(crItem => !items.Any(y => y == crItem.uniqueId));
© www.soinside.com 2019 - 2024. All rights reserved.