Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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#_Arrays_Winforms_List_Visual Studio 2010 - Fatal编程技术网

C# 从数组加载列表

C# 从数组加载列表,c#,arrays,winforms,list,visual-studio-2010,C#,Arrays,Winforms,List,Visual Studio 2010,我有一个正在运行的程序,但我的数据包含在数组中;但是,我从你们那里发现,我无法从数组加载dataGridView。 如果我有这样的代码,我将如何加载dataGridView1源的列表 // Load some date to indicate what I'm trying to do. int nColName = 0; int nColNumberOfOccurances = 1; int nColTotalTime = 2;

我有一个正在运行的程序,但我的数据包含在数组中;但是,我从你们那里发现,我无法从数组加载dataGridView。
如果我有这样的代码,我将如何加载dataGridView1源的列表

        // Load some date to indicate what I'm trying to do.

        int nColName = 0;
        int nColNumberOfOccurances = 1;
        int nColTotalTime = 2;
        int nColAverageTime = 3;
        string[,] strMyArray = new string[2,4];

        // load array with test data
        for (int i = 0; i < strMyArray.Length; i++)
        {
            switch (i)
            {
                case 0:
                 strMyArray.SetValue("file1.log".ToString(), i, nColName);
                 strMyArray.SetValue("10".ToString(), i, nColNumberOfOccurances);
                 strMyArray.SetValue("8989".ToString(), i, nColTotalTime);
                 strMyArray.SetValue("898.9".ToString(), i, nColAverageTime);
                 break;
                case 1:
                 strMyArray.SetValue("file2.log".ToString(), i, nColName);
                 strMyArray.SetValue("5".ToString(), i, nColNumberOfOccurances);
                 strMyArray.SetValue("4494.5".ToString(), i, nColTotalTime);
                 strMyArray.SetValue("898.9".ToString(), i, nColAverageTime);
                    break;
            }

        }

        // convert an array like the above into a List so that I can say...
       // myNewListFromArray = strMyArray
      //  dataGridView1.DataSource = myNewListFromArray;
//加载一些日期以指示我正在尝试执行的操作。
int nColName=0;
int ncolnumberofoccurrences=1;
int nColTotalTime=2;
int-nColAverageTime=3;
字符串[,]strMyArray=新字符串[2,4];
//用测试数据加载数组
for(int i=0;i
阵列与
DataGridView
配合使用。您的问题是-您使用的二维数组不能用作数据源

创建一个具有表示数据的属性的类,而不是数组。
注意:使用属性很重要,因为
DataGridView
绑定仅适用于属性

public class MyData
{
    public string Name { get; set; }
    public string NumberOfOccurances { get; set; }
    public string TotalTime { get; set; }
    public string AverageTime { get; set; }
}
然后在列表中使用这个类

var list = new List<MyData>
{
    new MyData 
    { 
        Name = "file1.log",
        NumberOfOccurances = "10",
        TotalTime = "8989",
        AverageTime = "898.9"
    },
    new MyData 
    { 
        Name = "file2.log",
        NumberOfOccurances = "5",
        TotalTime = "4494.5",
        AverageTime = "898.9"
    },
}

dataGridView1.DataSource = list;
var list=新列表
{
新MyData
{ 
Name=“file1.log”,
numberofoccurrences=“10”,
TotalTime=“8989”,
AverageTime=“898.9”
},
新MyData
{ 
Name=“file2.log”,
numberofoccurrences=“5”,
TotalTime=“4494.5”,
AverageTime=“898.9”
},
}
dataGridView1.DataSource=列表;

如果将
ItemSource
绑定到datacontext,则可以从
列表中加载datagrid视图。然后,您需要做的就是在数组上使用
LINQ
表达式
.ToList()
,并将其设置为datacontext。@JayGould多维数组没有
ToList()
方法arrays@MongZhu哎呀,错过了那个细节。忽略我上面的评论:-)你能改变它是一个
字符串[,]
数组的情况吗;如果您可以提供一个使用数组的示例,该数组允许我创建一个提供创建数组功能的数组,该数组在运行时指定谁的行,谁的行数在设计时声明,并且为空。然后允许扫描结果数组,并通过类似SetValue的方式设置缺少的数据。这里的关键点是具有属性(而不是字段)的类。列表不是很必要,类的数组也可以工作。