草庐IT

$foreach

全部标签

c# - 在 c# Parallel.ForEach 中的 List.Add() 上出现 "Index out of bounds"错误

这是代码Listsomething=newList();Parallel.ForEach(anotherList,r=>{..dosomeworksomething.Add(somedata);});Indexoutofbounds错误大约每百次运行1次。有没有办法防止由线程引起的冲突(我假设)? 最佳答案 为了防止出现此问题,您可以使用ConcurrentQueue而不是List或并行部分中的类似并发集合。并行任务完成后,您可以将其放入List中。.有关详细信息,请查看System.Collections.Concurrent命名

c# - Parallel.ForEach 不断产生新线程

当我在我的程序中使用Parallel.ForEach时,我发现有些线程似乎永远不会结束。事实上,它一遍又一遍地产生新线程,这是我没有预料到也绝对不希望出现的行为。我能够使用以下代码重现此行为,就像我的“真实”程序一样,它们都大量使用处理器和内存(.NET4.0代码):publicclassNode{publicNodePrevious{get;privateset;}publicNode(Nodeprevious){Previous=previous;}}publicclassProgram{publicstaticvoidMain(string[]args){DateTimestar

c# - 将 if(x) Foreach() 替换为 Foreach.Where(x)

可能是个愚蠢的问题,但我有很多:if(X){foreach(varYinmyList.Where(z=>z==1){}}在一些代码中构造将其替换为foreach(varYinmyList.Where(z=>X&&z==1){}疯了吗?它的可读性可能较差,但编译器会优化它以使其成为几乎相同的代码吗? 最佳答案 不,您的第一个版本更好更快。当X为真时,第二个版本将为序列中的每个元素计算X。你应该坚持第一个版本。 关于c#-将if(x)Foreach()替换为Foreach.Where(x),

c# parallel foreach 循环查找索引

我正在尝试读取文本文件中的所有行并计划显示每一行信息。如何找到循环内每个项目的索引?string[]lines=File.ReadAllLines("MyFile.txt");Listlist_lines=newList(lines);Parallel.ForEach(list_lines,(line,index)=>{Console.WriteLine(index);//Console.WriteLine(list_lines[index]);Console.WriteLine(list_lines[0]);});Console.ReadLine(); 最

c# - Razor 中 foreach 中的 html 和代码的混合

我想用row-fluid类创建引导网格。需要将所有带有span4类的嵌套div分成block。所以我想要这样的html:我在Razor中有代码@{intcounter=3;}@foreach(varconfiginModel){@if(counter==3){@counter=0;}@Html.Partial("_ConfigBar",config)@if(counter==2){}@{counter++;}}局部View只是把div和span4类放在一起,没有什么有趣的。但是没有用。谁能指出我哪里出了问题? 最佳答案 像这样的东西

C# - 使用 foreach 遍历方法参数

是否可以循环遍历函数参数以检查它们是否为空(或通过另一个自定义函数检查它们)?像这样:publicvoidtest(stringarg1,stringarg2,objectarg3,DataTablearg4){foreach(variteminargus){if(item==null){throw;}}//dotherest...}“argus”的正确关键字是什么?我知道这可以通过更多if语句来实现,但正在寻找更快的方法...... 最佳答案 您可以使用params关键字遍历所有参数,然后您将在方法本身中使用它们的类型。我会编写一

c# - 如何使用 foreach 和 LINQ 构建 XDocument?

我可以使用XDocument构建以下工作正常的文件:XDocumentxdoc=newXDocument(newXDeclaration("1.0","utf-8",null),newXElement(_pluralCamelNotation,newXElement(_singularCamelNotation,newXElement("id","1"),newXElement("whenCreated","2008-12-31")),newXElement(_singularCamelNotation,newXElement("id","2"),newXElement("whenCr

c# - 从 'foreach' 中有效地删除项目

目前,我能想到的最好的是:booloneMoreTime=true;while(oneMoreTime){ItemTypetoDelete=null;oneMoreTime=false;foreach(ItemTypeitemincollection){if(ShouldBeDeleted(item)){toDelete=item;break;}}if(toDelete!=null){collection.Remove(toDelete);oneMoreTime=true;}}我知道这里至少有一个额外的变量,但我将其包括在内以提高算法的可读性。 最佳答案

c# - foreach 神秘地卡在 ResourceSet 的第一项上

有时我们的网站速度变慢并且RAM使用率大幅上升。然后应用程序池停止,我必须重新启动它。然后在RAM突然再次飙升并且应用程序池很快停止之前几天没问题。CPU不高。在应用程序池停止之前,我注意到我们的一个页面总是挂起。它挂起的行是ResourceSet上的foreach:varenglishLocations=Lang.Countries.ResourceManager.GetResourceSet(newCultureInfo("en-GB"),true,true);foreach(DictionaryEntryentry2inenglishLocations)//THISLINEHAN

c# - 如何从 foreach 循环中修改 foreach 迭代变量?

当我尝试这样做时...Item[,]array=newItem[w,h];//TwodimensionalarrayofclassItem,//w,hareunknownatcompiletime.foreach(variteminarray){item=newItem();}...我得到Cannotassignto'item'becauseitisa'foreachiterationvariable'。不过,我还是想这样做。想法是将默认的Item类值分配给现有项目。 最佳答案 好的,既然我们知道了您的目标,而不是您试图实现它的方式