Resharper总是要求我将foreach循环更改为linq,我尝试着.这个难倒我.
foreach(var fileEnvironment in fileEnvironmentSection.FileEnvironmentList) {
var element = fileEnvironment as FileEnvironmentElement;
if(element == null) {
//Not the expected type, so nothing to do
} else {
//Have the expected type, so add it to the dictionary
result.Add(element.Key, element.Value);
}
}
Run Code Online (Sandbox Code Playgroud)
它fileEnvironment
从配置部分作为对象返回.这就是演员阵容的原因.
Ani*_*Ani 10
您可以使用OfType
运营商:
根据指定的类型过滤IEnumerable的元素.
foreach(var element in fileEnvironmentSection.FileEnvironmentList
.OfType<FileEnvironmentElement>())
{
result.Add(element.Key, element.Value);
}
Run Code Online (Sandbox Code Playgroud)
LINQ不会帮助循环体,因为它改变了现有的字典 - LINQ通常用于创建新数据而不是修改现有数据.
如果你不介意在这里返回一个新词典,你可以这样做:
var newResult = fileEnvironmentSection.FileEnvironmentList
.OfType<FileEnvironmentElement>()
.ToDictionary(element => element.Key,
element => element.Value);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
136 次 |
最近记录: |