我正在开发一个使用可移植类库的Windows Phone 8应用程序。 这些项目似乎没有linq支持。
是否有一种好的/推荐的方法可以根据属性值搜索列表中的项目?
如果我做对了,我就不能使用像list.Find(i => i.ID == someValue);
编辑:我目前正在使用foreach
,但想知道是否有其他解决方案。
PCL设置为: .NET 4.5,Silverlight 4,Windows Phone 7.5和Windows应用商店
答案 0 :(得分:2)
您可以使用list.FirstOrDefault(i => i.ID == someValue);
答案 1 :(得分:2)
因为您不需要Xbox,所以您可以在PCL中使用LINQ。 Blog post解释了使用PCL时的限制。
LINQ代码:
list.FirstOrDefault(i=>i.ID==someValue);
答案 2 :(得分:-1)
如果列表按搜索属性排序,那么旧的二进制搜索应该可以解决问题。然后你会得到O(log(n))计算复杂度,而不是带有foreach
的O(n),尽管排序和某些列表大小的开销可能会使所有这些技巧都可以忽略不计。