2013-04-08 69 views
0


我有一个列表说foo,其中包含类型类A(包含成员FName,LName,总计)的数据。我需要获取LName为“foobar”的数据列表。查询使用LINQ返回列表中的对象

我知道这听起来是一个简单的问题,但这让我气愤!因为我会让会员在运行时返回列表。

在此先感谢

编辑: 对不起怪才,这份名单是Dyanamic名单是Object类型的。我只知道在运行时

+3

显示您的完整代码.. – 2013-04-08 05:59:23

回答

9

它可以使用LINQ可以轻松完成型A级的公司:

using System.Linq; 

(...) 

List<A> foo = GetFooList(); // gets data 
List<A> fooBorItems = foo.Where(a = > a.FName == "foobar").ToList(); 

或者使用基于语法的查询:

List<A> fooBorItems = (from a in foo 
         where a.FName == "foobar" 
         select a).ToList(); 

对于List<object>使用Cast<T>扩展方法第一。它会施放的所有源集合元素融入A(并抛出异常时,这是不可能的):

List<A> fooBorItems = foo.Cast<A>().Where(a = > a.FName == "foobar").ToList(); 

OfType<A>(这将只返回可铸造的元素,没有例外,这些是不能):

List<A> fooBorItems = foo.OfType<A>().Where(a = > a.FName == "foobar").ToList(); 
+0

我很抱歉,我忘了mentiion名单是Dyanamic名单是Object类型的。我知道它只在运行期间类型A – 2013-04-08 06:20:54

+0

好的,我已经更新了我的答案。 – MarcinJuraszek 2013-04-08 06:23:45

+0

感谢您的回应Marcin,a.FName无法使用 - 因为列表是对象类型的,我将FName作为字符串。 – 2013-04-08 06:28:35

相关问题