1

我有以下数据集,并希望将三个数组存储在一个变量中以进行查找。

name         date          size  
aaa          201201        0.82  
bbb          201306        1.04  
ccc          201209        0.91   
................

如何将所有信息存储在一个变量中?有数百行。我正在使用 C#。我需要能够搜索变量。例如,如果时间 = 201201,名称 = aaa,则大小为 0.82。

4

2 回答 2

12

最好的办法?创建一个包装类,存储在一个 List 中,使用 Linq 查询对象:

public class YourStuff{
    public string Name;
    public DateTime Date;
    public double Size;
}

...

List<Stuff> myStuff = new List<Stuff>();

//then load from DataSet, DataTable, etc.

一些 Linq 示例:

var greaterThanOne = myStuff.Where(stuff => stuff.Size > 1);
var greaterThanOneCount = myStuff.Count(stuff => stuff.Size > 1);
var sumOfAllSizes = myStuff.Sum(stuff => stuff.Size);

使用 Linq to 对象,您可以查找、排序、切片和切块、分组,您可以命名它

于 2013-11-06T15:46:56.797 回答
4

编辑:我修改了我的原始答案,以便能够通过nameanddate和 get进行搜索size

你可以Tuple像这样使用这个类:

Dictionary<Tuple<string, DateTime>, float> dict = new Dictionary<Tuple<string, DateTime>, float>();
dict[new Tuple<string, DateTime>("aaa", DateTime.Now)] = 0.82f;

这种方法假设 和 的组合namedate唯一的,就像索引一样。然后,您可以轻松地按索引搜索。

但是,如果您需要按大小搜索名称/日期,Adrian Carneiro建议的包装类方法可能更好。

于 2013-11-06T15:47:46.337 回答