C# lambda 表达式中的类型转换错误
我创建了一个 ILIst
对象。此列表包含 Person
类型的对象。 现在我想根据特定条件使用 lambda 表达式过滤此列表。所以我这样做了:
IList<Person> personlist = new IList<Person>;
...
...
...
IList<Person> filtered_person =
(IList<Person>)personlist.Where(pd => pd.name != "anil");
但是这一行给出的错误是:
Unable to cast object of type 'WhereListIterator`1[Person]' to type 'Person'.
这里可能出了什么问题?
I have created an object of ILIst<Person>
. This list contains objects of type Person
.
Now I want to filter this list using a lambda expression based on a certain condition. So I did it as follows:
IList<Person> personlist = new IList<Person>;
...
...
...
IList<Person> filtered_person =
(IList<Person>)personlist.Where(pd => pd.name != "anil");
But this line gives error as:
Unable to cast object of type 'WhereListIterator`1[Person]' to type 'Person'.
What can be wrong here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
无需铸造。您可以使用 ToList() 扩展方法创建列表,如果你需要一个:
No need for casting. You can use the ToList() extension method to create a list, if you need one:
使用
表达式的结果是
IEnumerable
并且需要转换为列表。Use
The result of your expression is
IEnumerable<Person>
and needs to be converted to a list.