1

谁能帮我用 lambda 表达式来获取我使用 foreach 循环的值?

foreach (var keysValue in configParameters)
        {
            foreach (XmlNode childNode in node.ChildNodes)
            {
                if (childNode.Attributes["key"].Value == keysValue.Key)
                {
                    childNode.Attributes["value"].Value = keysValue.Value;
                }
            }
        }

由于我没有接触过lamba表情,所以我问大家。也请帮助我学习。

4

1 回答 1

1
var updateInfos =
 from XmlNode childNode in node.ChildNodes
 let key = childNode.Attributes["key"].Value
 join keysValue in configParameters on key equals keysValue.Key
 select new { childNode, keysValue.Value };

这有效地加入了这两个集合。现在我们更新:

foreach (var updateInfo in updateInfos)
 updateInfo.childNode.Attributes["value"].Value = updateInfo.Value;

我们在函数式 LINQ 查询中做尽可能多的事情。然后我们使用foreach. 尽可能将查询和突变分开是很有用的。将 LINQ 用于查询部分,foreach用于突变。

于 2013-10-03T12:40:29.680 回答