繁体   English   中英

如何将数据表列中的值复制到 windows forms c# 中的 datagridview 列而不迭代每一行?

[英]How to copy values from a datatable column into a datagridview column in windows forms in c# without iterating every single row?

我的 datagridview 中有 9000 多行和 18 列。 我必须从外部数据表中读取列。 如果我找到列名之间的匹配项,我必须将数据表列中的所有值复制到 datagridview 列中。 我的问题是,对于超过 9000 行,我不能对这些行进行 18 次迭代,并且不能为每次迭代写入 datagridview 单元格中的值,因为它太慢了。 有什么有效的选择吗?

我在下面添加了一些代码,以便您可以更好地理解我的问题。 在这里,我首先迭代列,然后迭代行。 抱歉缩进,但我在 StackOverflow 上复制粘贴代码时遇到问题。

dgvMappatura 是我的 dataGridView,dtExcel 是我的 DataTable

foreach (DataColumn col in dtExcel.Columns)
                                            {
                                                
                                                if (col.ColumnName.Equals(nome_colonna_origine))
                                                {
                                                    
                                                    foreach (DataRow drExcel in dtExcel.Rows)
                                                    {
                                                        
                                                        
                                                        
                                                        // some code to add values to datagridview from the datatable column
                                                    }
                                                }
                                            }

查看以下是否更快:

            DataTable dt = new DataTable();

            foreach (DataRow row in dt.AsEnumerable())
            {
                var matches = row.ItemArray.Select((x, i) => new { name = x.ToString(), index = i }).GroupBy(x => x.name).Where(x => x.Count() > 1).ToArray(); 
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM