加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – IEnumerable选择

发布时间:2020-12-15 03:47:11 所属栏目:百科 来源:网络整理
导读:有人可以解释为什么下面的C#行与下面的foeach块的行为不一样吗? string [] strs = {"asdf","asd2","asdf2"};strs.Select(str = doSomething(str));foreach(string str in strs){ doSomething(str);} 我在doSomething()中放置了一个断点,它不会在Select中触
有人可以解释为什么下面的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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读