在C#中将三个元素存储在一个变量中

时间:2013-11-06 15:45:28

标签: c# dictionary

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

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

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

2 个答案:

答案 0 :(得分: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对象,您可以查找,排序,切片和切块,分组依据you name it

答案 1 :(得分:4)

编辑:我修改了我的原始答案,以便能够按namedate进行搜索并获得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可能更好。