Проверьте, существует ли объект по переменной - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть переменная var, назначенная следующим образом, где x.Item имеет тип 'Object'

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

скажем, элементы содержат два значения AUTO и ADVANCE.

У меня есть объект типа CreditCard

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

У меня есть список itemsList с кредитной картой. Я хочу удалить тех, чей уникальныйId "not in" items collection.

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

скажем, у меня есть два объекта CreditCard в itemsList со значением uniqueId как AUTO и BILL.

Он должен удалить CreditCard, имеющий uniqueId = BILL, поскольку items содержит только AUTO и ADVANCE

Как мне этого добиться?

Ответы [ 3 ]

1 голос
/ 30 апреля 2019

Следующее работает с любой перечисляемой последовательностью кредитных карт, не только с List<CreditCard>

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

И если вы хотите заменить свой первоначальный список новым списком:

originalList = originalList
               .Where(creditCard => !items.Contains(creditCard.UniqueId))
               .ToList();
1 голос
/ 30 апреля 2019

Я думаю, что это может работать

   itemList.RemoveAll(x => !items.Contains(((ct_CreditCard)x).uniqueId)
0 голосов
/ 30 апреля 2019

Попробуйте этот код

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