LINQ/Lambda 相当于 SQL
我有一个 IEnumerable,其中包含带有 id 的对象列表。我想选择 ID 为 1、2、7、8、9、10 和 11 的对象。我不知道等效 SQL 语句的 LINQ/Lambda 等效项 (select * where id in (1, 2, 7、8、9、10、11))。
我尝试过类似的操作:
var movieratings = new int[] {1, 2, 7, 8, 9, 10, 11};
list.ratings= list.ratings.Select(x => movieratings.Contains(x.Value));
但这给了我一个编译错误,比如说无法从使用中推断出类型参数。
I have an IEnumerable that has a list of objects with ids. I want to select those objects whose IDs are 1, 2, 7, 8, 9, 10, and 11. I don't know the LINQ/Lambda equivalent of the equivalent SQL statement (select * where id in (1, 2, 7, 8, 9, 10, 11)).
I tried something like:
var movieratings = new int[] {1, 2, 7, 8, 9, 10, 11};
list.ratings= list.ratings.Select(x => movieratings.Contains(x.Value));
But that gives me a compile error like saying the type arguments cannot be inferred from usage.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果要过滤,则需要在 where 子句而不是 select 子句中执行此操作
If you are filtering you need to do that in the where clause not the select clause