You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将C#中遍历Headers的foreach代码转换为Lambda表达式?

把foreach循环转成Lambda表达式的方法

嘿,刚接触Lambda表达式的话,这个转换其实挺简单的!咱们先看你原来的代码:

var client = new HttpClient(); 
foreach (var header in headers) { 
    client.DefaultRequestHeaders.Add(header.Name, header.Value); 
}

这段代码就是遍历headers集合,把每个头信息添加到HttpClient的默认请求头里。要转成Lambda写法,咱们可以用集合的ForEach方法配合Lambda表达式来实现:

var client = new HttpClient();
headers.ForEach(header => client.DefaultRequestHeaders.Add(header.Name, header.Value));

几点补充说明:

  • 这里的ForEach是List<T>类型自带的方法,如果你的headers是普通的IEnumerable<T>(比如从LINQ查询返回的结果),那得先把它转成List才能用ForEach,像这样:
    headers.ToList().ForEach(header => client.DefaultRequestHeaders.Add(header.Name, header.Value));
    
  • Lambda表达式header => ...在这里就相当于把foreach里的单个header变量作为输入,然后执行后面的添加操作,和原来的循环逻辑完全一致。
  • 虽然Lambda写法看起来更简洁,但如果后续要在循环里加更多复杂逻辑,原来的foreach循环可读性可能会更好——不过这个场景下用Lambda完全没问题!

内容的提问来源于stack exchange,提问作者Gautam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:46:40