我正在尝试找出最有效的方法来查找我的收藏中的项目。首先,这里有一些更多的信息/要求:
我目前正在使用一个继承自KeyedCollection的自定义集合,该集合使用GetKeyForItem()从项目中提取字符串,以用作密钥,到目前为止一切正常。
问题在于我希望能够查找项目的方式。我的理解是,除了'脏'枚举之外,使用与添加项相同的方法查找项目,无论是使用自定义相等比较器还是使用密钥。
我错过了什么吗?是否可以接受的做法是创建三个具有相同项目的集合,但对于我希望能够查找的每个属性具有不同的GetKeyFoItem()实现?或者我可以使用另一个系列吗?
我希望这足以说明我的问题。我很感激您的任何建议。
答案 0 :(得分:0)
尝试使用Linq! Linq是非常强大的东西!
这是一个小例子......
public class YourClass
{
public int ClassIntProperty { get; set; }
public string ClassStringProperty { get; set; }
}
List<YourClass> YourClassItemsList = new List<YourClass>();
public void SeekItem()
{
//Get several items
var t = YourClassItemsList.Where(item => item.ClassIntProperty == 0).AsEnumerable();
var tt = YourClassItemsList.Where(item => item.ClassStringProperty == "abc").AsEnumerable();
//Get one item
var ttt = YourClassItemsList.FirstOrDefault(item => item.ClassIntProperty == 0);
}