Linq在一条语句中只调用函数一次
本文关键字:一次 函数 调用 一条 语句 Linq | 更新日期: 2023-09-27 18:14:36
我对Linq很陌生。像这样:
dict = fullGatewayResponse.
Split(',').ToDictionary(key => key.Split('=')[0], value => value.Split('=')[1])
这工作得很好,但出于明显的原因,我不希望split()方法被调用两次。我该怎么做呢?
谢谢你的回复:),但是我只能选择一个
您可以使用Select
:
ToDictionary
之前的数组。dict = fullGatewayResponse.Split(',')
.Select(item => item.Split('='))
.ToDictionary(keySelector: parts => parts[0],
elementSelector: parts => parts[1]);
dict = (from item in fullGatetayResponse.Split(',')
let pair = item.Split('=')
select pair).ToDictionary(x => x[0], x => x[1]);
或者,如果你想隐藏数组的存在:
dict = (from item in fullGatetayResponse.Split(',')
let pair = item.Split('=')
select new{Key=pair[0],Value=pair[1]).ToDictionary(x=>x.Key,x=>x.Value);
试试这个:
dict = fullGatewayResponse.Split(',')
.Select(y => y.Split('='))
.ToDictionary(y => y[0], x => x[1])
这将工作,但我不认为有保存分割操作的任何意义
var dict = fullGatewayResponse.Split(',')
.Select(i=>i.Split('='))
.ToDictionary(key=>key[0],value=>value[1]);