限制list.where的返回

时间:2012-03-23 23:27:48

标签: c# linq list windows-phone-7

我想限制此代码的返回值:

Listx.AddRange(suggestions.Where(x => x.Contains(content)));

因此,只会添加少于7个项目。尝试过这样的方式,但它感觉不对,而且它非常慢,因为listx包含了100个托管。

Listx.AddRange(suggestions.Where(x => x.Contains(content)&&Listx.Count <= 6));

任何人都有一些提示来改善第二段代码的性能?每次触发文本框的文本更改事件时都会使用它,因此不应该延迟输入。

1 个答案:

答案 0 :(得分:8)

您可以使用Enumerable。Take方法限制任何Linq查询的结果。

Listx.AddRange(suggestions.Where(x => x.Contains(content)).Take(6));

如果我是你,你会熟悉101 Samples for Linq,你会在那里找到Linq框架上可用的每个操作的例子。