मैं अक्सर खोज करने और पहले तत्व को पकड़ने के लिए Where.FirstOrDefault()
का उपयोग करके लोगों को देखता हूं। क्यों न केवल Find()
का उपयोग करें? क्या दूसरे के लिए कोई फायदा है? मैं एक अंतर नहीं बता सका।खोजें() बनाम कहां()। 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();
}
}
}
एफडब्ल्यूआईडब्लू, 'सूची। फर्स्टऑर्डडिफॉल्ट (x => x == "item3"); '' वहाँ 'और 'FirstOrDefault' दोनों का उपयोग करने से अधिक संक्षिप्त है। –
@ किर्क, मुझे लगता है कि मेरा अगला प्रश्न यह होगा कि उन्होंने बिल्कुल खोज क्यों जोड़ा। यह एक अच्छी टिप है। एकमात्र चीज जो मैं सोच सकता हूं वह यह है कि फर्स्टऑर्डडिल्ट नल के अलावा एक अलग डिफ़ॉल्ट मान वापस कर सकता है। अन्यथा यह एक व्यर्थ जोड़ के समान लगता है। – KingOfHypocrites
'ढूँढें' LINQ को पूर्ववत करता है। (यह .NET 2.0 में उपलब्ध था और आप lambdas का उपयोग नहीं कर सके। आपको सामान्य तरीकों या अज्ञात विधियों का उपयोग करने के लिए मजबूर किया गया था) –