我有一个列表说foo,其中包含类型类A(包含成员FName,LName,总计)的数据。我需要获取LName为“foobar”的数据列表。查询使用LINQ返回列表中的对象
我知道这听起来是一个简单的问题,但这让我气愤!因为我会让会员在运行时返回列表。
在此先感谢
编辑: 对不起怪才,这份名单是Dyanamic名单是Object类型的。我只知道在运行时
我有一个列表说foo,其中包含类型类A(包含成员FName,LName,总计)的数据。我需要获取LName为“foobar”的数据列表。查询使用LINQ返回列表中的对象
我知道这听起来是一个简单的问题,但这让我气愤!因为我会让会员在运行时返回列表。
在此先感谢
编辑: 对不起怪才,这份名单是Dyanamic名单是Object类型的。我只知道在运行时
它可以使用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();
我很抱歉,我忘了mentiion名单是Dyanamic名单是Object类型的。我知道它只在运行期间类型A – 2013-04-08 06:20:54
好的,我已经更新了我的答案。 – MarcinJuraszek 2013-04-08 06:23:45
感谢您的回应Marcin,a.FName无法使用 - 因为列表是对象类型的,我将FName作为字符串。 – 2013-04-08 06:28:35
显示您的完整代码.. – 2013-04-08 05:59:23