C# 使用select将foreach转换为linq表达式
我有一个表达:C# 使用select将foreach转换为linq表达式,c#,linq,C#,Linq,我有一个表达: var newValues = MetarDecoder.Decode(telegram) .OfType<MeteoParameter<decimal>>() .Select(parameter => MeteoParameterFactory .Create(parameter.ParameterId, parameter.DateTime.ToL
var newValues = MetarDecoder.Decode(telegram)
.OfType<MeteoParameter<decimal>>()
.Select(parameter => MeteoParameterFactory
.Create(parameter.ParameterId, parameter.DateTime.ToLocalTime(), parameter.Status, parameter.Value))
.ToList();
那么,有没有办法在如下所示的LINQ表达式中添加此部分?在Select中,您可以创建一个匿名函数,返回在其中创建的参数
var val = MetarDecoder
.Decode(telegram)
.OfType<MeteoParameter<decimal>>()
.ToList()
.ForEach(param =>
{
var parameter = MeteoParameterFactory.Create(param.ParameterId, param.DateTime.ToLocalTime(), param.Status, param.Value);
parameter.Info = param.Info;
newValues.Add(parameter);
});
var newValues = MetarDecoder.Decode(telegram)
.OfType<MeteoParameter<decimal>>()
.Select(param => {
var parameter = MeteoParameterFactory.Create(param.ParameterId, param.DateTime.ToLocalTime(), param.Status, param.Value);
parameter.Info = param.Info;
return parameter;
}).ToList();
在Select中,您可以创建一个匿名函数,返回在其中创建的参数
var newValues = MetarDecoder.Decode(telegram)
.OfType<MeteoParameter<decimal>>()
.Select(param => {
var parameter = MeteoParameterFactory.Create(param.ParameterId, param.DateTime.ToLocalTime(), param.Status, param.Value);
parameter.Info = param.Info;
return parameter;
}).ToList();
.ForEachparam=>。。。或..Selectparameter=>{…}?.ForEachparam=>。。。或者..Selectparameter=>{…}?