c# – IEnumerable选择

前端之家收集整理的这篇文章主要介绍了c# – IEnumerable选择前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以解释为什么下面的C#行与下面的foeach块的行为不一样吗?
string [] strs = {"asdf","asd2","asdf2"};
strs.Select(str => doSomething(str));


foreach(string str in strs){
  doSomething(str);
}

我在doSomething()中放置了一个断点,它不会在Select中触发,但它与foreach一起触发.

TIA

解决方法

在使用ToList(),ToArray()等将其转换为Enumarable之前,不会处理Linq查询.

顺便说一句,相当于你的foreach语句是这样的:

strs.ForEach(doSomething);
strs.ToList().ForEach(doSomething);

要么

Array.ForEach(strs,doSomething);

猜你在找的C#相关文章