C#/ .NET 4.0中的一个新功能是,您可以在foreach不获取异常的情况下更改您的枚举.请参阅Paul Jackson的博客文章"并发的有趣副作用:在枚举时从集合中删除项目"以获取有关此更改的信息.
执行以下操作的最佳方法是什么?
foreach(var item in Enumerable)
{
foreach(var item2 in item.Enumerable)
{
item.Add(new item2)
}
}
Run Code Online (Sandbox Code Playgroud)
通常我使用IList一个缓存/缓冲区直到结束foreach,但是有更好的方法吗?
我只是想用来将forEacha中的所有值设置List为false,但我不明白为什么它不起作用。我创建了一个固定长度的填充列表,如下所示:
List<bool> myList = List<bool>.filled(6, false);
Run Code Online (Sandbox Code Playgroud)
然后我将一个值设置为true:
setState(() => myList[3] = true);
Run Code Online (Sandbox Code Playgroud)
然后,我尝试再次将所有值重置为false,但是从
setState(() {
myList.forEach((val) => val = false);
print(myList);
});
Run Code Online (Sandbox Code Playgroud)
I/flutter (29049): [false, false, false, true, false, false]
.net ×1
c# ×1
dart ×1
enumerable ×1
enumeration ×1
flutter ×1
foreach ×1
java ×1
list ×1
methods ×1