Typecast一个值并获得一个属性Linq

时间:2013-04-06 23:11:54

标签: linq c#-4.0

我有对象列表,我需要获取列表中所有对象的属性A.这是我如何获取列表中对象的属性

       ((myClass)(finalProjectList[0])).A

如何将对象键入myClass并获取每个对象的属性A并将其放入列表

谢谢,SCP

2 个答案:

答案 0 :(得分:1)

您可以使用Enumerable.Cast方法。这样的事情对你有用:

var As = finalProjectList.Cast<myClass>().Select(x => x.A);

如果您的源列表包含混合的对象集合(即并非所有对象都是myClass类型),则应使用Enumerable.OfType代替:

var As = finalProjectList.OfType<myClass>().Select(x => x.A);

答案 1 :(得分:0)

也许:

var result = finalProjectList.Select(x => ((myClass)x).A).ToList();

我不知道为什么需要施法。它闻起来有点味道。 finalProjectList的实际类型是什么?上面的代码假定它实现了泛型 IEnumerable<>

如果您想跳过非myClass类型的元素,请改用:

var result = finalProjectList.OfType<myClass>().Select(mc => mc.A).ToList();