草庐IT

$foreach

全部标签

c# - DataTable - foreach 行,第一行除外

我在我的应用程序中使用DataTable进行一些计算。我需要遍历除第一行以外的所有行。可能吗?类似于:DataTabledt;foreach(DataRowrindt.Rows/*EXCEPTTHEFIRSTONE*/){//dosomething...} 最佳答案 LINQ是你的friend:DataTabledt;foreach(DataRowrindt.Rows.Cast().Skip(1)){//dosomething...}调用Cast()自DataTable.Rows以来这里是必需的实现非泛型IEnumerable,li

c# - Lists.ForEach 使用 LINQ/LAMBDA 按标准选择

我有List,我;只想使用LinQ/LAMBDA根据某些标准进行选择我的代码是Lists.ForEach(x=>x.IsAnimal==false{/*DoSomething*/});在这部分x.IsAnimal==false我知道我们可以使用for循环轻松实现这一点,但我想通过使用LinQ/LAMBDA了解更多信息 最佳答案 在使用ForEach之前只需使用Where和ToListLists.Where(x=>!x.IsAnimal).ToList().ForEach(...) 关于c

c# - Javascript block 内的 ASP MVC Razor foreach

我有一个分部View,它在我提交Ajax表单后返回一个Javascript函数调用。它获取地址列表并调用Javascript函数以在Googlemap上进行地理编码和放置标记。当我编译以下代码时,在ForEach行的var周围出现“条件编译已关闭”错误。@modelIEnumerable@if(Model.Count()>0){deleteMarkers();@foreach(variteminModel){codeAddress('@item.GetAddress');}}我摆弄了代码,下面的代码没有编译错误:@if(Model.Count()>0){deleteMarkers();

c# - 让 foreach 运行一次

所以问题是,我有一个foreach循环,我目前正在使用它从XML文件的查询中检索数据,然后将其放入字符串中;像这样:foreach(varvalueindateQuery)date=value.Element("HistoryCreation").Value;我知道一个事实(基于xml文件存储值的方式和所使用的查询)dateQuery中只有一个值。因此,我想知道(为了使我的程序更高效并学习如何更好地编码),是否有更好的方法来做到这一点,或者foreach是唯一的方法吗? 最佳答案 你可以使用:dateQuery.First().El

c# - 如何反转 foreach 中的列表?

我有一个问题,我无法反转以下列表:foreach(ListrowinItems){foreach(Fooiteminrow.Reverse()){...}}我总是得到错误:Typevoidisnotenumerable问题是什么以及如何解决? 最佳答案 List.Reverse不会返回任何东西-它会反转列表。如果你想使用LINQversionofReverse它返回一个相反的序列,但不改变现有列表,你可以使用:foreach(IEnumerablerowinItems){foreach(Fooiteminrow.Reverse())

c# - C# 中的 foreach 重新计算

如果我用C#编写一个foreach语句:foreach(StringainveryComplicatedFunction()){}它会在每次迭代或只计算一次veryComplicatedFunction并将其存储在某个地方吗? 最佳答案 您的问题已在12.9.5部分得到解答规范,其中规定:Theabovesteps,ifsuccessful,unambiguouslyproduceacollectiontypeC,enumeratortypeEandelementtypeT.Aforeachstatementoftheformfor

c# - foreach 循环与 ForEach 方法 - 区别?

这个问题在这里已经有了答案:foreachvssomeList.ForEach(){}(13个答案)关闭7年前。使用foreach循环或ForEachLINQ方法之间是否存在任何差异(性能或其他方面)?对于上下文,这是我方法之一的一部分:foreach(varpropertyintypeof(Person).GetProperties()){Validate(property.Name);}我也可以使用这段代码来执行相同的任务:typeof(Person).GetProperties().ToList().ForEach(property=>Validate(property.Name

c# - 为什么在使用 foreach 时不执行此 LINQ 查询?

在LINQ语句中创建新对象时,例如:varlist=newList(){"a","b","c"};varcreated=fromiinlistselectnewA();A类看起来像这样:classA{publicstringLabel;}然后使用foreach循环修改A中的属性:foreach(varcincreated){c.Label="Set";}为什么之后访问IEnumerable中的对象时没有设置值。例如。以下断言失败:Assert.AreEqual("Set",created.ElementAt(2).Label);我想知道为什么会这样。我希望foreach语句执行查询,并

c# - 为什么 Interlocked.Increment 在 Parallel.ForEach 循环中给出不正确的结果?

我有一项迁移工作,完成后我需要验证目标数据。为了通知管理员验证成功/失败,我使用计数器比较数据库1中表Foo的行数与数据库2中表Foo的行数。Database2中的每一行都根据Database1中的相应行进行验证。为了加快这个过程,我使用了一个Parallel.ForEach循环。我最初的问题是计数总是与我的预期不同。后来发现+=和-=操作不是线程安全的(不是原子的)。为解决此问题,我更新了代码以在计数器变量上使用Interlocked.Increment。这段代码打印出一个更接近实际计数的计数,但是,每次执行似乎都不同,它没有给出我期望的结果:PrivatecountObjectsA

c# - 为什么 foreach(var i in array2D) 适用于多维数组?

给定以下C#代码:int[,]array2D=newint[10,10];intsum=0;foreach(variinarray2D){sum+=i;}问题是:是什么导致了i的类型?被正确推断为int?这一点都不明显,因为array2D是一个矩形数组。它没有实现IEnumerable.它还实现了一个GetEnumerator()方法,返回System.Collections.IEnumerator.因此,我希望i类型为object.我的代码使用的是.net4.03。相关问题:WhydoC#MultidimensionalarraysnotimplementIEnumerable?.