спіс змяшчае ідэнтыфікатар ў LINQ

Я спрабую знайсці запыт LINQ, так што я магу напісаць гэта ў, калі заяву.

Псеўда-код:

Список_идентификаторов спіс Спіс INTS< int >

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

але я не магу здацца, каб высветліць, што трэба.

Ні ў адным-LINQ гэта працуе:

  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
дададзена