Sık sık Where.FirstOrDefault()
numaralı telefonu kullanarak arama yaparak ilk öğeyi yakalarım. Neden sadece Find()
kullanıyorsunuz? Diğeri için bir avantaj var mı? Bir fark anlayamadım. IEnumerable<T>
üzerinde Find
yöntem NeredeFind() vs. Where() FirstOrDefault()
namespace LinqFindVsWhere
{
class Program
{
static void Main(string[] args)
{
List<string> list = new List<string>();
list.AddRange(new string[]
{
"item1",
"item2",
"item3",
"item4"
});
string item2 = list.Find(x => x == "item2");
Console.WriteLine(item2 == null ? "not found" : "found");
string item3 = list.Where(x => x == "item3").FirstOrDefault();
Console.WriteLine(item3 == null ? "not found" : "found");
Console.ReadKey();
}
}
}
FWIW, 'list.FirstOrDefault (x => x ==" item3 ");' '.Where' ve' .FirstOrDefault' öğelerinin her ikisini de kullanmaktan daha özlüdür. –
@Kirk, sanırım bir sonraki sorum, niçin bulmayı da eklediler. Bu iyi bir ipucu. Düşünebildiğim tek şey, FirstOrDefault öğesinin boş değerden farklı bir varsayılan değer döndürmesidir. Aksi takdirde sadece anlamsız bir ekleme gibi görünüyor. – KingOfHypocrites
'Bul, LINQ’yi önceden seçiyor. (.NET 2.0'da mevcuttu ve lambda'ları kullanamıyordunuz. Normal yöntemler veya anonim yöntemler kullanmaya zorlandınız) –