C# 从数组加载列表
我有一个正在运行的程序,但我的数据包含在数组中;但是,我从你们那里发现,我无法从数组加载dataGridView。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;
如果我有这样的代码,我将如何加载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的方式设置缺少的数据。这里的关键点是具有属性(而不是字段)的类。列表不是很必要,类的数组也可以工作。