LINQ相当于列表与LT的; T> .Find()? [英] LINQ equivalent of List<T>.Find()?

查看:247
本文介绍了LINQ相当于列表与LT的; T> .Find()?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在看一些代码,需要一个 的IEnumerable< T> 并将其转换为一个 列表< T> ; ,以便它可以使用 名单,LT; T> .Find(谓语)

I'm looking at some code that takes an IEnumerable<T> and converts it to a List<T> so it can use List<T>.Find(predicate):

var myEnumerable = ...;
var myList = new List<T>(myEnumerable);
var match = myList.Find(value => value.Aaa == aaa && value.Bbb == bbb);



有没有办法这样用的 LINQ扩展方法具有相同的效果,但没有建立一个额外的列表< T> 作为一个中间步骤?

Is there a way to rewrite this using the LINQ extension methods that has the same effect, but without building an extra List<T> as an intermediate step?

借助 FirstOrDefault(源,谓语) 扩展方法看起来像一个很好的候选人,而是试图弄清楚,如果是的究竟的等同于查找正在我的头很疼。

The FirstOrDefault(source, predicate) extension method looks like a good candidate, but trying to figure out if it's exactly equivalent to Find is making my head hurt.

推荐答案

在LINQ equivelent是使用 FirstOrDefault

The LINQ equivelent would be to use FirstOrDefault:

var match = myEnumerable.FirstOrDefault(value => value.Aaa == aaa && value.Bbb == bbb);

这篇关于LINQ相当于列表与LT的; T&GT; .Find()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆