c# - 有没有办法让它看起来像 foreach 看起来返回一个值?

标签 c# lambda

这是我一直疑惑的问题,查了几次也没弄明白。

所以基本上我想做的就是获得这种效果:

List<string> strings = new List<string>(){"a","b","c"};
string aString = foreach(string s in strings){ if (s == "c") return s;}

那么在那之后,aString 的值为“c”。

我尝试过使用 lambda 表达式,也许我只是无法让它们正常工作,或者可能只是没有办法做到这一点。

显然我想做一些比我上面的例子更复杂的事情,但它会以同样的方式工作。

可能吗?不可能?

最佳答案

您应该使用 FirstOrDefault 扩展方法。

List<string> strings = new List<string>(){"a","b","c"};
return strings.FirstOrDefault(s=>String.Equals(s, "a"));

关于c# - 有没有办法让它看起来像 foreach 看起来返回一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11551169/

相关文章:

java - 将字符串序列转换为 URI 的有效方法

c# - 如何使用反射调用扩展方法?

c# - 如何在运行时获取当前类名?

c# - MVC 路由的许多可选参数

c++ - 在 boost::unordered_set 字符串中使用 Lambda 函数 - 不区分大小写

c++ - 在 C++20 中捕获参数的 lambda 的不同声明需要表达式

lambda - Rspec 模拟 : mock/yield the block from a method call

c# - C#中的连续消息发送

c# - 在 C# 中将字符串转换为 int

c# - 如何在C++和C#之间传递字符串参数?