我们仍在使用.Net Framework 2.0 / VS 2005,因此我没有LINQ。如果我不想使用poor man's LINQ解决方案,那么能够在字典中查询内存自定义对象还有哪些其他选择?
答案 0 :(得分:1)
我不确定你的一个穷人的LINQ解决方案是LINQBridge但是我用了几个星期它似乎在我们真正切换到 okay 之前。 NET 3.5和真正的交易。
答案 1 :(得分:0)
Dictionary<T>
似乎是一个不错的选择,尽管您没有提供有关“查询”的含义的更多信息。您是否只是想根据某些关键值检索数据?得到总项目数?根据某些条件做一笔总和或平均值?你真的需要提供更多信息才能得到更好的答案。
答案 2 :(得分:0)
要详细说明Chesso所说的内容,你必须像LINQ一样迭代循环......
例如:
static T FindFirst<T>(IEnumerable<T> col, Predicate<T> predicate)
{
foreach(T t in col)
{
if(predicate(t))
{
return t;
}
}
return default(T);
}
答案 3 :(得分:0)
我不知道Predicate代表,这似乎是我正在寻找的。至于我要查询的上下文:
假设我有一个对象X,其属性为A(名称,保证唯一)和B(年龄)
1)我在字典中有一系列对象,其键是指给定对象的属性A,当然值是对象自己。
现在我想要检索此词典中符合B的某个标准的所有对象,比如年龄&gt; 20.
我可以将字典的所有值添加到列表中,然后在其上调用.FindAll,传入委托。我可以创建一个匿名委托来执行此操作,但是我会多次重复使用它。如何动态指定委托方法的年龄标准?唯一的选择是将Predicate方法封装在一个类中,然后使用我的条件作为实例变量创建该类的新实例吗?