【c# – 为什么我的foreach中的代码无法访问? (已经过单元测试的工作代码的确切副本)】教程文章相关的互联网学习教程文章

c# 中for和foreach循环的区别

for循环可以改变初始化,控制条件以及增量,语法如下: for ( init; condition; increment ) {statement(s); } init为初始化,运行for循环时只在开始的时候运行一遍。初始化可以是多个,也可以是空,一般省略时是在for循环之前初始化了控制变量,但是必须有分号。 condition为控制条件,每次循环都要判断一遍条件是否满足,如果满足,继续执行循环,否则跳出循环。控制变量也可省略,省略时将进行无限循环,一般搭配break使用。但控...

C#中foreach的实现原理

C#中foreach的实现原理 在探讨foreach如何内部如何实现这个问题之前,我们需要理解两个C#里边的接口,IEnumerable 与 IEnumerator. 在C#里边的遍历集合时用到的相关类中,IEnumerable是最基本的接口。这是一个可以进行泛型化的接口,比如说IEnumerable<User>.在微软的.NET推出了这两个接口后,才有了foreach的用法,可以说,foreach是建立在这两个接口的基础之上的,foreach的前提是其里边的容器要实现了IEnumerable接口。 IEnu...

C#-Parallel.ForEach比预期花费更多时间【代码】

这里代码就此关注:while (true) {Console.WriteLine("start " + DateTime.Now);ParallelOptions options = new ParallelOptions();options.MaxDegreeOfParallelism = -1; Parallel.ForEach(hosts, item =>{using (Ping ping = new Ping()){PingReply pingReply = ping.Send(item.Value, 2000); // timeout is 2 secsApp.dict[item.Key].lastConnectTry = new KeyValuePair<bool, DateTime>((pingReply.Status == ...

在foreach(字符串中的单词)中,如果(如果-> true)C#,我如何转到下一个单词?【代码】

这个想法是他输入了一个文本文件和一个单词号.该软件将在一个新文件中写入该文本,但每行带有单词数(他输入的单词数)以及其他一些细节. 想法就是这样,我把他列入了黑名单.黑名单从文件加载到Richbox中,并在关闭应用程序时保存. 关键是我已经完成了所有设置(一个检查单词是否在黑盒中的函数). 该软件如下所示:foreach (string word in words) {int blacklist = 0;if (FindMyText(word)){blacklist = 1;MessageBox.Show("Current wor...

C#-foreach循环在具有多个记录的Linq查询后仅返回第一条记录【代码】

我有一个对第三方提供的数据库运行的Linq2SQL查询.查询的主要部分如下所示:var valuationQuery =from v in context.Valuationswhere v.ModelId == QualifiedModelId.ModelId&& v.QualifyModelId == QualifiedModelId.Qualifier&& v.LanguageCode == QualifiedModelId.LanguageCode&& v.Edition == Data.Meta.Edition.CurrentEdition.Date&& v.RegDate == yearReg.RegistrationDate&& v.ValTypeDescription == "Normal"&& v.Mileag...

C#-结合linq foreach【代码】

如何将以下代码更改为一个LINQ查询:var items = (from s in db.WfRADocStates.Include(x => x.WfStateStatu).Include(xx => xx.WfState).Include(xxx => xxx.WfState.Dept).Include(d => d.RADoc)where s.RADocID == docID&& !s.isHistory&& s.StatusID == 1&& s.WfStateStatu.isToNotifyselect s).ToList();foreach (var item in items) {EmailHelper.notify(item); }解决方法:在LINQ中使用.ForEach:(from s in db.WfRADocState...

C#中巧用妙法避免嵌套方式使用两个foreach循环【代码】

问题:需要对DataGridViewRow的下拉框列Item2所选内容进行判断,看是否跟数据库里面某个配置表的数据列Item1匹配。如果用两个foreach循环进行匹配,会导致逻辑复杂而且容易只break里面那层循环而忽略break外层循环而造成bug. 解决方案:巧妙使用List,把配置表满足条件的Item1统计装到List,再使用List的Contains方法来判断DataGridViewRow是否有行的Item2列是等于Item1相关项。 代码:List<string> list = new List<string>();Dat...

c#-通过AuthorizationRuleCollection的Parallel.ForEach【代码】

希望有人可以指出我在这里做错了什么.我有一个读取文件访问规则的进程,并且试图以并行方式运行它. 这是我到目前为止的代码:public List<FolderAccessRule> GetSecurityGroupsForFolder(long importId, string subdirectory, bool includeInherited){ConcurrentQueue<FolderAccessRule> groups = new ConcurrentQueue<FolderAccessRule>();ConcurrentQueue<Exception> exceptions = new ConcurrentQueue<Exception>();DirectoryInf...

c#-Parallel.ForEach中的Mock方法始终返回null【代码】

我有以下代码:public int LoadFilesAndSaveInDatabase(string filesPath) {var calls = new ConcurrentStack<GdsCallDto>();var filesInDirectory = this._directoryProxy.GetFiles(filesPath);if (filesInDirectory.Any()){Parallel.ForEach(filesInDirectory, file =>{var lines = this._fileProxy.ReadAllLines(file, Encoding.Unicode);if (lines.Any()){// Reads the file and setup a new DTO.var deserializedCall = this....

C# foreach循环【图】

一、简介 foreach循环可以迭代数组或者一个集合对象 二、语法 foreach(数据类型 变量名 in 数组名) { //语句块; } 循环运行的过程:每一次循环时,从集合中取出一个新的元素值。放到只读变量中去,如果括号中的整个表达式返回值为 true,foreach 块中的语句就能够执行。一旦集合中的元素都已经被访问到,整个表达式的值为 false,控制流程就转入到 foreach 块后面的执行语句。 foreach 语句仅能用于数组、字符串或集合类数...

c# – foreach inversly【代码】

是否有可行的方法让foreach从最后到开始迭代整个集合?int[] fibarray = new int[] { 0, 1, 2, 3, 5, 8, 13 };foreach (int i in fibarray){System.Console.WriteLine(i);}如何与foreach反向显示?解决方法: using System.Linq;foreach (int i in fibArray.Reverse())但正常的for循环会更有效:for( int index = fibArray.Length - 1; index >= 0; --index ) {int i = fibArray[index];... }

C#中foreach语句的迭代器实现机制【代码】

原文链接:http://www.cnblogs.com/riasky/p/3481600.htmlC#中的foreach语句可用于循环遍历某个集合中的元素,而所有的只要支持了IEnumerable或IEnumerable<T>泛型接口的类型都是可以 用foreach遍历的。其具体的遍历实现过程就是利用C#中的迭代器中的方法来按照特定顺序遍历的。在.NET中IEnumerator和IEnumerator<T> 就是对迭代器的抽象,如果要自定义的类型也支持foreach循环则首先须要声明该类支持IEnumerable或IEnumerable<T>接...

在C#中,当枚举容器被修改时,foreach的行为如何【代码】

这似乎应该得到回答,但我发现潜在的欺骗行为正在问不同的事情…… 我注意到这似乎工作正常(sourceDirInclusion是一个简单的字典< X,Y>)foreach (string dir in sourceDirInclusion.Keys){if (sourceDirInclusion[dir] == null)sourceDirInclusion.Remove(dir);}这是否意味着从foreach中的集合中删除项目是安全的,还是我很幸运? 如果我在字典中添加更多元素而不是删除呢? 我试图解决的问题是sourceDirInclusion最初是填充的,但是每...

关于C#使用foreach循环将对象添加到列表中【代码】

foreach (string f in fileName) {if (list.Where(p => p.FileName.Trim().Equals(f.Trim(), StringComparison.OrdinalIgnoreCase)).Count() == 0){ServerpathID = GetSourceServerPath(projectID, out ServerPath);DellDirectory dir = new DellDirectory(ServerPath);lstgAFPFileInfo = GetFilesFromSourceServer(new string[] { f }, ServerpathID, SearchOption.TopDirectoryOnly).ToList();if (lstgAFPFileInfo.Count() != 0)...

嵌套的Foreach循环运行次数太多 – C#【代码】

我有2个foreach循环,1个嵌套在另一个循环中.共有115个项目共有115个.我想要做的是将第一个集合中的第一个项目写入控制台,然后将第二个集合中的第一个项目写入控制台.返回第一个集合并执行第二个项目,依此类推. 我理解为什么嵌套循环一遍又一遍地运行,我只是无法弄清楚如何实现我想要实现的目标.var Titles = chromeDriver.FindElements(By.CssSelector("div.contentItem__contentWrapper h1")); var Text = chromeDriver.FindEleme...

单元测试 - 相关标签