Список містить ідентифікатор у linq

Я намагаюся знайти запит linq, щоб я міг написати його у заяві if.

Псевдокод:

IDList - список списку інт< int >

if (IDList.Contains (Object.Id)) Do something

але я, схоже, не розумію, що потрібно.

У цьому розділі:

  foreach(int id in IDList )
     {
        if (id == Object.Id)
            break;
     }

але я хочу, щоб це було як один рядок, якщо це можливо.

Спочатку я спробував:

IDList.Contains(Object.Id);

але це призводить до помилки компіляції

Мені цікаво, чи це буде один з цих двох?

  IDList.Any(id => id == Object.Id)

або

IDList.Exists(id => id == Object.Id);

I don't completely understand how the lambdas and things work абоthe difference between andy and exists so I'm not sure if I'm along the wrong line?

7
Що ви хочете зробити, ви можете пояснити це логічно, тому що це не ясно в цьому питанні
додано Автор Ankur, джерело

2 Відповіді

Ви можете просто зробити це:

if (MyList.Any(c => c.Id == MyObject.Id)) { }

Assuming that MyList is an IEnumerable (or anything that derives from IEnumerable) where T is an object that has a property named Id of the same type of the property Id on the MyObject instance.

18
додано
 IDList.Any(id => id == Object.Id)

Це нормально, воно поверне вам true , якщо принаймні один елемент, що задовольняє вашому предикату, існує.

5
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug