草庐IT

T_FOREACH

全部标签

c# - 类是否需要实现 IEnumerable 才能使用 Foreach

这是在C#中,我有一个正在使用其他人的DLL的类。它没有实现IEnumerable,但有2个方法可以传回IEnumerator。有没有一种方法可以在这些上使用foreach循环。我正在使用的类是密封的。 最佳答案 foreach不需要IEnumerable,这与普遍的看法相反。它所需要的只是一个方法GetEnumerator,该方法返回具有方法MoveNext和具有适当签名的get-propertyCurrent的任何对象。/编辑:然而,在你的情况下,你运气不好。但是,您可以简单地包装您的对象以使其可枚举:classEnumerab

c# - 使用 foreach 循环遍历两个列表

我有两个列表Lista=newList();Listb=newList();现在我想遍历两个列表的元素。我可以通过为每个列表编写一个foreach循环来做到这一点。但是也可以做类似的事情吗?foreach(objectoina,b){o.DoSomething();}如果这样的事情是可能的,那就太好了:foreach(objectoina&&b){o.DoSomething();} 最佳答案 foreach(objectoina.Concat(b)){o.DoSomething();}

c# - Parallel.ForEach 调试或逐步执行

是否有一种简单的方法来遍历parallel.foreach?使用断点进行调试的最佳方法是什么? 最佳答案 在调试期间,我经常将我的Parallel.ForEach设置为在MaxDegreeOfParallelism设置为1的情况下运行。这使得调试变得更加简单。constboolforceNonParallel=true;varoptions=newParallelOptions{MaxDegreeOfParallelism=forceNonParallel?1:-1};Parallel.ForEach(collection,opti

C# 有 foreach oneliner 可用吗?

我只想知道C#里有没有foreachoneliner,比如ifoneliner(exp)?then:else. 最佳答案 如果你正在处理一个数组,那么你可以使用内置的静态ForEach方法:Array.ForEach(yourArray,x=>Console.WriteLine(x));如果您正在处理List那么你可以使用内置的ForEach实例方法:yourList.ForEach(x=>Console.WriteLine(x));没有任何内置的东西可以对抗任意IEnumerable序列,但如果您觉得需要它,也很容易推出您自己的扩

c# - TypeScript 中是否有类似于 C# 实现的 foreach 构造?

我非常喜欢在C#中为“for循环”使用foreach结构。我认为它非常干净、高效且可读。TypeScript中是否有类似的结构?例如,而不是这个:setAuthorFilters(selectedAuthors){selectedAuthors.forEach(x=>this.setAuthorFilter(x));this.updateUrl();}setAuthorFilter(selectedAuthor){this.vm.SelectAuthors=this.vm.SelectAuthors.filter(x=>x.id!==selectedAuthor.id);this.vm

c# - 空传播运算符和 foreach

大量阅读Nullpropagationoperator?.,我没有找到在以下情况下是否有帮助的答案。抛出的代码:int[]values=null;foreach(variinvalues)//Throwssincevaluesisnull.{//...}为了使其正常工作,我必须在访问values变量之前添加一个null检查。上述代码很可能超出了Null传播运算符的设计考虑范围。不过,可以肯定的是,我不得不问。我的问题:在foreach循环中尝试访问null集合时,Null传播运算符是否有用? 最佳答案 我找到了另一种有效的方法:当使

c# - List ForEach 休息

有没有办法突破foreach扩展方法?“break”关键字无法将扩展方法识别为要中断的有效范围。//Doesn'tcompileEnumerable.Range(0,10).ToList().ForEach(i=>{System.Windows.MessageBox.Show(i.ToString());if(i>2)break;});编辑:从问题中删除“linq”请注意,该代码只是一个示例,显示中断在扩展方法中不起作用...我真正想要的是让用户能够中止处理列表..UI线程有一个中止变量和for当用户点击取消按钮时,循环就会中断。现在,我有一个普通的for循环,但我想看看是否可以使用扩

c# - 从 foreach 中的 Dictionary 中删除一个键会导致问题吗?或者我应该更好地构建一个新的词典?

例如:1.foreach(variteminmyDic){if(item.value==42)myDic.remove(item.key);}无论内部括号中的语句如何影响myDic,迭代器是否会正常工作?2.varnewDic=myDic.where(x=>x.value!=42).ToDictionary(x=>x.key,x=>x.value);第二种方法是好的做法吗?函数式编程和不可变? 最佳答案 第一种方法会在运行时崩溃,因为枚举器确保在枚举时没有人从基础集合中删除。第二种方法是一个不错的想法,但是C#字典是可变的,如果您可

c# - IEnumerable 是否需要使用 foreach 循环?

这个问题在这里已经有了答案:DoesClassneedtoimplementIEnumerabletouseForeach(11个答案)关闭9年前。我想知道,我到底什么时候可以使用foreach循环?我必须实现IEnumerable吗?

c# - Foreach 循环 XmlNodeList

目前我有以下代码:XmlDocumentxDoc=newXmlDocument();xDoc.Load("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=twitter");XmlNodeListtweets=xDoc.GetElementsByTagName("text");foreach(intiintweets){if(tweets[i].InnerText.Length>0){MessageBox.Show(tweets[i].InnerText);}}这不起作用,它在foreach行上给我Syst