使用LINQ在返回列表中的对象时进行查询

本文关键字:对象 查询 LINQ 返回 列表 使用 | 更新日期: 2023-09-27 18:07:53


我有一个List-Say foo,它保存a类数据(包含成员FName、LName、Total(。我需要获取LName为"foobar"的数据列表。

我知道这个问题听起来很简单,但这让我很生气!因为我将获取成员,以便在运行时返回列表。

提前感谢

编辑:对不起,Geeks,列表是Dyanamic,列表是Object类型。我只在运行时才知道它的A类

使用LINQ:可以轻松完成

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();

使用LINQ在返回列表中的对象时进行查询