나는 종종 사람들 Where.FirstOrDefault()
이 검색을하고 첫 번째 요소를 얻는 것을 사용하는 것을 본다 . 왜 사용하지 Find()
않습니까? 다른쪽에 이점이 있습니까? 나는 차이를 말할 수 없었다.
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();
}
}
}
Find
LINQ보다 이전입니다. (.NET 2.0에서 사용할 수 있었고 람다를 사용할 수 없었습니다. 일반적인 방법이나 익명의 방법을 사용해야했습니다)
list.FirstOrDefault(x => x == "item3");
모두 사용하는 것보다 더 간결.Where
하고를.FirstOrDefault
.