从数组中加载列表
Posted
技术标签:
【中文标题】从数组中加载列表【英文标题】:Load a list from an array 【发布时间】:2017-04-29 14:20:33 【问题描述】:我有一个正在运行的程序,只是我的数据包含在一个数组中;但是,我从你们那里得知我无法从数组中加载 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;
【问题讨论】:
如果将ItemSource
绑定到数据上下文,则可以从List
加载数据网格视图。然后,您需要做的就是在数组上使用 LINQ
表达式 .ToList()
并将其设置为数据上下文。
@JayGould 多维数组没有ToList()
方法
@MongZhu 哎呀,错过了那个细节。忽略我上面的评论:-)
你能改变它是string [ , ]
数组的情况吗?
孟朱;如果您可以提供一个使用数组的示例,该数组允许我创建一个提供创建数组功能的数组,该数组的行在运行时指定,谁的行数在设计时说明并且为空。然后允许扫描结果数组并通过 SetValue 之类的方法设置丢失的数据。
【参考方案1】:
数组适用于DataGridView
。您的问题是 - 您使用的二维数组不能用作 DataSource。
创建一个具有代表数据的属性的类,而不是数组。
注意:使用属性很重要,因为DataGridView
绑定仅适用于属性。
public class MyData
public string Name get; set;
public string NumberOfOccurances get; set;
public string TotalTime get; set;
public string AverageTime get; set;
然后在List中使用这个类
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;
【讨论】:
这里的关键点是带有 properties 的 class(不是字段)。该列表不是非常必要的,类数组也可以。以上是关于从数组中加载列表的主要内容,如果未能解决你的问题,请参考以下文章
UITableViewCell 如何知道从数组或字典中加载啥 JSON
从一个巨大的(> 200MB)数组文件中加载随机对象而不加载整个数组