用foreach遍历一个二维数组
我试图通过以下语句迭代一个数组:foreach(int [] arr2d中的arr).它在Java中的工作原理类似.为什么它在C#中不起作用?谢谢! public static int[] RowSums(int[,] arr2D) { int[] sums = new int[arr2D.Length]; int rowCount = 0; foreach (int[] arr in arr2D) { sums[rowSums] = ArraySum(arr); rowSums++; } return sums; } 解决方案 int [,]不是int []的ienumerable,而是int.因此,您不能在foreach环中使用它.另外,您必须使用 array.getLength()找出每一行元素数量的方法. public static int[] RowSums(int[,] arr2D) { int num
8 2024-04-26
编程技术问答社区
最快的方法是检查COM端口
我需要在我的应用程序中检查可用的com端口: 我创建了两种方法. 方法1: public List GetAllPortsForeach() { var allPorts = new List(); foreach (String portName in System.IO.Ports.SerialPort.GetPortNames()) { allPorts.Add(portName); } return allPorts; } 方法2: public List GetAllPortsForLoop() { var allPorts = new List(); for (int i = 1; i
6 2024-04-26
编程技术问答社区
试图用 "选择 "按钮的方法将网格视图中的复选框项目移动到列表框中
我正在处理一个分配,该作业要求我使用代码与复选框创建GridView.这样做之后,我将选择的复选框项目(通过按钮单击)到列表框中以显示值为文本. 样本页面在这里:到目前为止我的代码是: protected void btnSelect_Click(object sender, EventArgs e) { lblAlready.Text = string.Empty; // empty the label that says you already have an item foreach (GridViewRow row in gvSnacktastic.Rows) // check all the items in the grid view { CheckBox checkItOut = row.Cells[0].Controls[0] as CheckBox; // get the checkbox if
10 2024-04-26
编程技术问答社区
如何更快地获得管理对象的结果
我创建了用于从Windows OS收集已安装的应用程序版本信息的方法.但是,当将值分配到foreach中时,面对缓慢的问题.获得ManagementObjectSearcher结果更快.有任何建议吗? ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Product WHERE Name=Google Chrome"); foreach (ManagementObject obj in searcher.Get()) // this part is taking too long time to process { MessageBox.Show(obj["Name"] + "-----" + obj["Version"]); }; 解决方案 我的Win32_printer类遇到了同样的问题.我将查询更改为管理路径.现在的速度更快. Con
20 2024-04-26
编程技术问答社区
C#-类似线程系统的并发Foreach
IObservable IObservableArray = new Regex("(.*):(.*)").Matches(file).OfType().ToList().ToObservable(); var query = IObservableArray.SelectMany(s => Observable.Start(() => { //do stuff })); 工作代码上方的说明:上面的代码使用可观察的与反应性进行同时进行多线程系统,同时保留S作为匹配. 我的问题是,即使启动//do stuff>,由于IObservableArray是一大批匹配项,似乎都需要将所有内容加载到内存中 - 这占用了许多内存,从而导致它做出了异常异常. 我已经研究了一个多月,而我所能找到的是.buffer(),如果我将其放在.selectmany()之前,然后在s上进行匹配,我可以将1000匹匹配加载到存储器中一段时间导致记忆整体要好得多.
10 2024-04-26
编程技术问答社区
结合Foreach循环和计数器,在每N行的开头和结尾添加动态生成的HTML。
我正在动态生成HTMLGeneric控件,并在数据表中使用数据.我需要将HTML连接到每组3的开始和结尾.例如,我的桌子看起来像这样: Title Body ------------------------------ Order 1 This is body 1 Order 2 This is body 2 Order 3 This is body 3 Order 4 This is body 4 Order 5 This is body 5 Order 6 This is body 6 我目前正在生成这样的html,没有任何问题: Order 1 This is body 1
6 2024-04-26
编程技术问答社区
为什么这个foreach循环会提前停止?
我正在尝试从attask/Workfront网站获取项目信息.我每次使用100个项目的foreach循环. JToken projects = client.Search(ObjCode.PROJECT, new { groupID = userGroupID }); foreach (var j in projects["data"].Children()) { Console.WriteLine("# " + counter + " Name: {0}", j.Value("name")); counter++; } 这会像我需要的那样产生名称,只是循环总是停止.此循环的代码直接来自Workfront开发人员网站( https://developers.workfront .com/api-docs/code-samples/). 这是由具有呼叫限制的工作条件API引起的,还是代码中存在错误?我该怎么办来解决这个问题? 解决方案
8 2024-04-26
编程技术问答社区
如何将以下foreach循环转换为linq代码格式?
代码: foreach (var testView in projectDataCandidate.ViewMaps .Where(vm => !vm.IsNotTestLane) .Select(this.GenerateTestView)) { this.SwimLaneViews.Add(testView); testView.ItemsOrphaned += OnItemsOrphaned; } 如何以LINQ代码格式编写上述foreach循环?谢谢. 解决方案 projectDataCandidate.ViewMaps .Where(vm => !vm.IsNotTestLane) .Select(this.GenerateTestView)
10 2024-04-26
编程技术问答社区
在foreach循环中调用派生类方法
我在此代码上遇到麻烦: List persons; foreach(var p in persons) p.Save(); 有几个从Person派生的类都有自己的new Save()方法.不幸的是,尽管列表包含不同类型的实例(base类和派生的列表),但以上代码仅调用基类的保存方法. . 所有派生的类都包含所有基类的字段,只有Save方法是不同的,因此它也保存了派生的类'字段. 如何根据当前迭代的变量类型来调用适当的Save方法? 解决方案 方法隐藏通常是灾难的秘诀.此场景的正确实现将在Person类中声明Save()为virtual,override override在派生类中. 为了使其在您的情况下如上所述工作,您需要将p施放到适当的派生类,并在其上调用Save().根据您对对象的做法或不知道的情况,您可能需要动态确定派生类型并使用反射调用其Save()方法. 其他解决方案 另一种方式,使用反射 L
14 2024-04-26
编程技术问答社区
循环浏览一个列表并合并标识符相同的总数。
我有一个objetcs汽车的清单 内部的变量为: make 模型 服务成本 说我有列表填写: 法拉利,F50,300 保时捷,911,700 丰田,友善,300 保时捷,911,400 宝马,Z4,1200 保时捷,911,900 保时捷,356a,700 您可以看到,我的列表包含三个记录,保时捷911具有服务成本. 我如何循环浏览列表,找到副本911并组合以形成一个单一记录?这样我最终得到了: 法拉利,F50,300 保时捷,911,2000 丰田,友善,300 宝马,Z4,1200 保时捷,356a,700 到目前为止,我所做的事情无法正常工作,因为我的记录会在错误的领域中出现: List CombinedCarRecords = new List(CarDetailRecords); //Original list here being
14 2024-04-26
编程技术问答社区
在文件夹中的每个位图
因此,下面是一些使用Tessnet的OCR工具来扫描文件夹中的每个位图并将OCR信息处理到List result中的代码.但是我似乎无法让foreach正常工作. 我得到以下错误foreach statement cannot operate on variables of type 'System.IO.DirectoryInfo' because 'System.IO.DirectoryInfo' does not contain a public definition for 'GetEnumerator' DirectoryInfo diBMP = new DirectoryInfo("c:\\temp\\bmps"); foreach (Bitmap bmp in diBMP) {
12 2024-04-26
编程技术问答社区
让代码快速执行--取代For循环
由于循环实现 ,执行这些循环需要大量时间 我如何替换它更快,下层桌子也没有太多记录,而且我也制作了主要键,但是for循环仍然很慢 public List GetPOUnusedCDANumberTrackingItems(string code) { List results = new List(); List SoUsedBagList = new List(); List
4 2024-04-25
编程技术问答社区
循环for与foreach在迭代字典中的区别 c#中的作用
我有一个下方的foreach循环,可以完成这项工作.我很想知道以下情况 - 最好使用for循环而不是foreach循环来解决性能问题? 因为我读到for循环比foreach循环快,所以我也很混乱. foreach (KeyValuePair v in values) { string key = v.Key; StringValues val = v.Value; if (val.Count > 0) { if (!string.IsNullOrWhiteSpace(val[0])) { switch (key) { case ABC: One = val[0];
10 2024-04-25
编程技术问答社区
改变foreach迭代变量以及C#和C++/CLI之间的实现差异
考虑以下C#代码. string[] stringArray = new string[10]; foreach (string s in stringArray) s = "a new string"; // Compiler error - Can't assign to foreach iteration variable 现在考虑以下有效 C ++/CLI代码. array^ stringArray = gcnew array(10); for each(String^% s in stringArray) s = "a new string"; 当foreach与数组类型一起使用时,编译器将其转换为正常for循环.对于C#和C ++/CLI,此实现相同.因此,我想知道C ++/CLI是否可以允许,为什么不适合C#编译器? 当类型不是数组时,此错误是有意义的,因为foreach将被编译到GetEnu
10 2024-04-25
编程技术问答社区
不能用remove()函数从列表中删除项目。
嗨,我想通过在 method readinput中使用foreach 将帐户发送到 methot disableDuser ,该帐户将禁用帐户并从全球列表InvalidAccounts (整个代码第7行)如果操作成功. 我已经尝试使用删除方法并将其放在if和其他条件下,但在disableaduser方法中,但它不起作用.我应该如何解决这个问题?提前致谢. :) readinput方法(第1-13行) //Read user input private static string readInput(string Input) { string input = string.Empty; switch (Input) { case "disable": invalidAccount.ForEach(delegate(String samA
8 2024-04-25
编程技术问答社区
为什么.NET中的通用字典不提供ForEach()方法?
经过几个小时的研究(在MSDN网站等)之后,我没有设法找出为什么通用Dictionary不提供ForEach() List的方法.有人可以给我解释吗? (我知道以扩展方法的实现并不难,可以看到一个很好的示例在这里,我只是想知道是否有一个特殊的原因,首先是.NET库不提供它的原因.) 预先感谢. 解决方案 因为首先List有问题.无需在任何地方重复同样的错误.埃里克·利普特(Eric Lippert)给出了为什么在他的 第一个原因是这样做违反了所有其他序列运营商所基于的功能编程原则.显然,呼吁这种方法的唯一目的是引起副作用. (...) 第二个原因是这样做为语言添加了零新的代表力.这样做使您可以重写此完美的清晰代码: foreach(foos中的foo foo){涉及foo的语句; } 进入此代码: foos.foreach(((foo foo)=> {语句涉及foo;}); 以略有不同的顺序使用几乎完全
6 2024-04-25
编程技术问答社区
违反访问权限。不能用[]对类型为'object'的表达式进行索引。
我有以下变量:_data. 变量包含以下信息: 如何访问消息字段? 我尝试了_Data["messages"][0] - 但它不会扭动. 我收到以下错误:不能将索引[]应用于类型的"对象" 的表达式 我在做什么错? 谢谢. 解决方案 我在做什么错? _Data["messages"] 是返回类型object.您需要将其施放到List或IList中才能使用索引器. var indexable = _Data["messages"] as IList; // The image is cut off - not sure if this should be string or not if (indexable != null) return indexable[0];
8 2024-04-25
编程技术问答社区
BIML中的Foreach数据流过滤器
在biml文件中工作,我有2 DataTables我正在通过ExternalDataAccess.GetDataTable用SQL查询来填充ExternalDataAccess.GetDataTable.我正在另一个内部的一个内部循环,并试图通过从外部的值中过滤内部的一个. . 我已经通过编码以下来解决此问题: foreach (DataRow t in Target.Rows) { foreach (DataRow c in Columns.Rows) { if (c["Object"].ToString() == t["ReferenceObject"].ToString()) { //... } } } 但是,我认为有一种过滤内部foreach循环的方法.我的内在DataSet我可能有1000张记录,这是我缺乏经验的光芒. foreach (DataRow t in Target.Row
12 2024-04-25
编程技术问答社区