我有以下数据集,并希望将这三个数组存储在一个变量中以供查找。
name date size
aaa 201201 0.82
bbb 201306 1.04
ccc 201209 0.91
................
如何将所有信息存储在一个变量中?有数百行。我正在使用C#。我需要能够搜索变量。例如,如果time = 201201,name = aaa,则大小为0.82。
答案 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)
编辑:我修改了我的原始答案,以便能够按name
和date
进行搜索并获得size
。
您可以像这样使用Tuple
类:
Dictionary<Tuple<string, DateTime>, float> dict = new Dictionary<Tuple<string, DateTime>, float>();
dict[new Tuple<string, DateTime>("aaa", DateTime.Now)] = 0.82f;
此方法假定name
和date
的组合是唯一的,就像索引一样。您可以轻松地按索引进行搜索。
如果您需要按大小搜索名称/日期,建议的包装类方法Adrian Carneiro
可能更好。