Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C中的数组按列填充ListView#_C#_Arrays_Visual Studio 2010_Listview - Fatal编程技术网

C# 从C中的数组按列填充ListView#

C# 从C中的数组按列填充ListView#,c#,arrays,visual-studio-2010,listview,C#,Arrays,Visual Studio 2010,Listview,我的结构由7个不同的阵列组成,每个阵列的大小为20000。 我想在ListView中将每个数组显示为一个单独的列。 如何在ListView中按列添加值,使单个列显示单个数组?我在列表视图中有7列。 我对C#还相当陌生。我确实知道如何按行填充数据,但我第一次遇到了按列填充。 任何帮助都值得赞赏。 < P>假设所有数组的大小完全相同,请考虑下面的想法: for (var i = 0; i < 20000; i++) { AddRow(column1[i], column2[i], ..

我的结构由7个不同的阵列组成,每个阵列的大小为20000。
我想在ListView中将每个数组显示为一个单独的列。
如何在ListView中按列添加值,使单个列显示单个数组?我在列表视图中有7列。
我对C#还相当陌生。我确实知道如何按行填充数据,但我第一次遇到了按列填充。

任何帮助都值得赞赏。

< P>假设所有数组的大小完全相同,请考虑下面的想法:

for (var i = 0; i < 20000; i++)
{ 
   AddRow(column1[i], column2[i], ...);
}
for(变量i=0;i<20000;i++)
{ 
AddRow(第1列[i],第2列[i],…);
}
如果这是您问题的一部分:否,列表视图不支持按列添加数据。我所知道的任何本机WPF或第三方控件都没有

性能: 至于这个解决方案的性能,它不是遍历需要时间的20k记录,而是创建20k wpf对象。阅读有关wpf虚拟化的内容来解决这个问题

还请记住,您可以轻松地花费数周或数月的时间研究更快的控件和渲染技术,但归根结底,用户并不需要在屏幕上看到所有20k记录。人类不可能理解如此多的信息。虚拟化只是另一种不加载用户看不到的内容的技术,但您可以自己解决这个问题,比如分页、过滤器或分组

WinForms:
我刚意识到你不是在谈论WPF,你可能是在谈论WinForms。那里没有虚拟化,尽管您可能会找到一些支持虚拟化的第三方组件。然后考虑寻呼。

终于得到了解决方案!!!p>
string[] temp = new string[10];
for (int i = 0; i < 20000; i++)
        {
            temp[0] = Array1[i].ToString();
            temp[1] = Array2[i].ToString();
            temp[2] = Array3[i].ToString();
            temp[3] = Array4[i].ToString();
            temp[4] = Array5[i].ToString();
            temp[5] = Array6[i].ToString();
            temp[6] = Array7[i].ToString();
            temp[7] = Array8[i].ToString();
            ListViewItem listItem = new ListViewItem(temp);
            MyListView.Items.Add(listItem);
        }
string[]temp=新字符串[10];
对于(int i=0;i<20000;i++)
{
temp[0]=Array1[i].ToString();
temp[1]=Array2[i].ToString();
temp[2]=Array3[i].ToString();
temp[3]=Array4[i].ToString();
temp[4]=Array5[i].ToString();
temp[5]=Array6[i].ToString();
temp[6]=Array7[i].ToString();
temp[7]=Array8[i].ToString();
ListViewItem listItem=新ListViewItem(临时);
MyListView.Items.Add(listItem);
}

@Ilya I.Margolin:虽然这种方法很有效,但我还是希望填充得更快,因为ListView大约需要2-3秒才能填满。我很想知道是否有一些方法可以在不使用多线程的情况下加快速度感谢所有的帮助好友。。我使用的是WinForms,我可能最终会使用一些第三方组件来加快进程。。再次感谢:)