刚开始使用c#中的Lambda,我对此感到沮丧。如何将以下代码块转换为lambda表达式,将标题中的所有值添加到DefaultRequestHeaders中。
var client = new HttpClient();
foreach (var header in headers)
{
client.DefaultRequestHeaders.Add(header.Name, header.Value);
}
答案 0 :(得分:-1)
这不是Lambda表达式的用例(正如关于Sim的回答的讨论所示),但如果你想利用并行处理,那可能就是这样:
using System.Threading.Tasks;
Parallel.ForEach(headers, header =>
client.DefaultRequestHeaders.Add(header.Key, header.Value)
);
但是,在这种情况下,我不会这样做。该类可能不是线程安全的,并且在性能方面没有任何东西可以获得。
答案 1 :(得分:-2)
如果标题是列表,则可以使用List.ForEach()。如果它是IEnumerable类型,则可以使用headers.ToList()。ForEach()。
var client = new HttpClient();
headers.ForEach(header =>
{
client.DefaultRequestHeaders.Add(header.Name, header.Value);
});
编辑:如果您想了解有关良好的foreach练习的更多信息,请阅读评论。