通过变量检查对象是否已经存在

Check if object already exist by a variable

我有一个 var 变量分配如下,其中 x.Item 是类型 'Object'

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

假设项目包含两个值 AUTO 和 ADVANCE。

我有一个 CreditCard

类型的对象
public class CreditCard
{
   public string uniqueId {get; set;}
}

我有一个列表 itemsList 有信用卡。我想删除那些 uniqueId "not in" items collection.

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

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

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

如何实现?

我认为这可行

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

试试这个代码

itemsList.RemoveAll(crItem => !items.Any(y => y == crItem.uniqueId));

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

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

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

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