什么是在字典中搜索值的最佳方法.比如我想搜索修改过的对象,是否会通过整个集合才能做到这一点?
c#,.net 2.0
class RecA
{
public bool modified {get;set:}
public string txt {get;set;}
}
class RecA_Dic : Dictionary<int,Rec_A>
{
public bool GetItemByKey(int key,out obj)
{
return this.TryGetValue(key, out obj);
}
public List<Rec_A> getModifiedItems()
{
List<Rec_A> li = new List<Rec_A>();
for(int i=0;i<this.count;i++)
if (((Rec_A)this[i]).modified == true)
li.Add((Rec_A)this[i]);
return li;
}
}
Run Code Online (Sandbox Code Playgroud)
鉴于约束(.NET 2.0),您几乎达到目标.IEnumerable<Rec_A>加上yield return是一个更好的选择,IMO:
public IEnumerable<Rec_A> getModifiedItems()
{
foreach (Rec_A rec in this.Values)
{
if (rec.modified)
yield return rec;
}
}
Run Code Online (Sandbox Code Playgroud)