草庐IT

HarmonyOS-ForEach

全部标签

c# string.replace 在 foreach 循环中

不知何故,我似乎无法在C#的foreach循环中进行字符串替换。我的代码如下:foreach(stringsinnames){s.Replace("pdf","txt");}我对LINQ还是很陌生,所以如果这听起来很业余,请原谅我;) 最佳答案 您说您正在寻找LINQ解决方案...这很简单:varreplacedNames=names.Select(x=>x.Replace("pdf","txt"));我们不知道names的类型,但如果您想重新分配给它,您可以使用ToArray或ToList://IfnamesisaListname

c# - 用 LINQ 替换嵌套的 foreach;修改和更新内部深处的属性

考虑更改5或6层深对象的一个​​或多个属性的数据成员的要求。有一些子集合需要迭代才能到达需要检查和修改的属性。在这里,我们调用了一个方法来清除员工的街道地址。由于我们在循环中更改数据,当前的实现需要一个for循环来防止异常:Cannotassignto"someVariable"becauseitisa'foreachiterationvariable'这是带有嵌套foreach和for的当前算法(混淆)。foreach(varempincompany.internalData.Emps){foreach(varaddrinemp.privateData.Addresses){intn

c# - 为什么使用 `foreach` 循环数组对象比 lambda `ForEach` 更快?

我在一个数组上工作,我必须遍历它。首先,我使用lambdaForEachArray.ForEach(array,(intcounter)=>{Console.WriteLine(counter);});然后我使用简单的foreach。我发现简单的foreach比lambdaForEach快得多,但是当我用通用列表测试它时,ForEach比简单的快foreach.为什么使用foreach循环数组对象比lambdaForEach更快?更新:我在数组上测试 最佳答案 我稍微编辑了Keith的代码-在我的机器上,foreach的执行速度大约

c# - 我是否需要在每次 'foreach' 迭代时释放 COM 对象?

这是(潜在的)问题:我创建了一个COM对象,然后使用“foreach”循环访问它返回的集合中的每个元素。我是否需要释放我在集合中迭代的每个单独元素?(请参阅下面的代码。)如果是这样,我想不出一种方法来有效地从“finally”语句中释放它,以防万一在操作该项目时出现错误。有什么建议吗?privatestaticvoiddoStuff(){ComObjectClassmanager=null;try{manager=newComObjectClass();foreach(ComObjectiteminmanager.GetCollectionOfItems()){Log.Debug(it

c# - .Net 标准库中是否有 .Each() (或 .ForEach() )迭代器?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:LINQequivalentofforeachforIEnumerable我想知道在.Net库中是否有像下面的.Each()这样的IEnumerable方法varintArray=new[]{1,2,3,4};intArrary.Each(Console.WriteLine);我知道我可以使用foreach循环或像这样轻松编写扩展方法:publicstaticclassEnumerableExtensions{publicstaticvoidEach(thisIEnumerableenumberable,Act

c# - 使用 LINQ ForEach() 异步等待

我有以下正确使用异步/等待范式的代码。internalstaticasyncTaskAddReferencseData(ConfigurationDbContextcontext){foreach(varsinkNameinRequiredSinkTypeList){varsinkType=newSinkType(){Name=sinkName};context.SinkTypeCollection.Add(sinkType);awaitcontext.SaveChangesAsync().ConfigureAwait(false);}}如果我不使用foreach(),而是想使用LIN

c# - 从 foreach 语句内部返回有任何副作用吗?

类似于我关于returningfrominsideausingstatement的问题(他们的回答通常是“是的,没关系”)我想知道从insideaforeach语句返回是否同样没有副作用并考虑了公认的做法,或者当我这样做时,我会在内部某处留下一个指针卡在中间的枚举,等等。这是一个例子:publicstringGetCurrentTransaction(stringidText){foreach(vartransactionintransactions){if(idText.IsEquivalentTo(transaction.IdText)){returntransaction.Con

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),