2011-10-28 15 views
7

Bir linq sorgusu bulmaya çalışıyorum, böylece bir if deyiminde yazabilirim.listesi linq içinde bir kimlik içerir

sözde kod:

IDList int Listesinin bir liste < int>

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

ama neye ihtiyacım yolculuk devam edemez.

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

ama mümkünse bir satır olarak istiyorum:

hiçbiri-linq bu çalışır.

Öncelikle bu çalıştı:

IDList.Contains(Object.Id); 

ama bu bu ikisinden birini olmalıdır merak ediyorum bir derleme hatası

atar?

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

veya

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

lambda'lar ve işlerin nasıl Tamamen anlamadığınız veya Andy arasındaki fark ve ben yanlış hat boyunca değilim emin değilim bu yüzden var?

+0

Ne yapmak istersen mantıklı bir şekilde açıklayabilirsin, çünkü bu soruda net değil. – Ankur

cevap

17

Sadece yapabilirsiniz: MyList T özelliği Id aynı tip Id adında bir özelliği olan bir nesne olduğu bir IEnumerable<T> (IEnumerable<T> türetilmiştir ya da bir şey) 'dir

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

varsayarsak o MyObject örneğinde. senin yüklemi karşılayan en az bir eleman, varsa

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

Tamam mı, size true dönecektir.