c# - 使用 LINQ 查询从列表中返回对象

标签 c# linq


我有一个 List Say foo,它包含 A 类数据(包含成员 FName、LName、Total)。我需要获取 LName 为“foobar”的数据列表。

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

提前致谢

编辑: 对不起,极客们,列表是动态的,列表是对象类型的。我只在运行时知道它是 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> (它将只返回可以转换的元素,不能转换的元素没有异常(exception)):

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

关于c# - 使用 LINQ 查询从列表中返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15872217/

相关文章:

c# - EF6 - 有没有办法在不对数据库造成任何更改的情况下清除 EF 缓存/本地项目?

c# - 验证网站凭据

c# - 使用 Try-Catch block 包装复杂的 linq 查询并捕获正确的异常

c# - 一个用于连接具有相同接口(interface)的两个不同对象列表的衬垫

c# - Linq groupby 和 sum

c# - 用于数组传递和返回的 Microsoft 中间语言代码 [MSIL]

C# WPF Mysql 组合框重复值

c# - 在新子集合中枚举时集合被修改异常

c# - 在 Visual Studio 2017 中访问 Publish 时出错

c# - 在 LINQ 中返回 null 而不是默认值