c#可移植类库:按属性查找列表中的项

本文关键字:列表 查找 属性 可移植 类库 | 更新日期: 2023-09-27 18:21:05

我正在开发一个使用可移植类库的WindowsPhone8应用程序。这类项目似乎没有林克的支持。

是否有一种基于属性值在列表中搜索项目的好方法/推荐方法?

如果我做对了,我就不能使用像list.Find(i => i.ID == someValue); 这样的东西

编辑:我目前正在使用foreach,但想知道是否有其他解决方案。

PCL设置为:.NET 4.5、Silverlight 4、Windows Phone 7.5和Windows应用商店

c#可移植类库:按属性查找列表中的项

因为你不需要Xbox,所以你可以在PCL中使用LINQ。博客文章解释使用PCL时的限制。

LINQ代码:

list.FirstOrDefault(i=>i.ID==someValue);

您可以使用列表。FirstOrDefault(i=>i.ID==someValue);

如果列表是按搜索属性排序的,那么好的旧二进制搜索就可以了。然后,它将具有O(log(n))的计算复杂性,而不是foreach的O(n),尽管排序和某些列表大小的开销可能会使所有这些技巧变得微不足道。