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

Toa*_*ums 1 c# lambda

这是我一直想知道的事情,抬起几次却从未想过.

基本上我想做的就是得到这样的效果:

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

那么之后,aString的值为"c".

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

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

可能?不可能?

Mic*_*zyk 5

您应该使用FirstOrDefaultExtension方法.

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