c# - 如何将 Lambda 表达式输出转换为 List<T>

标签 c# asp.net

我正在从 Gridview 中选择选中的行。为此,我使用动态关键字编写了一个 lambda 表达式。

var dn = gvLoans.Rows.OfType<dynamic>().Where(s => s.FindControl("chkSelect").Checked == true).Select(s => s.FindControl("lblCD")).ToList();

我想要列表中的输出。是否可以通过扩展查询来实现,或者我必须编写 foreach 语句。

最佳答案

公然撕毁作为答案发布的评论。

List<int> lst = gvRankDetails.Rows
    .OfType<GridViewRow>()
    .Where(s => ((CheckBox)s.FindControl("chkSelect")).Checked) 
    .Select(s => Convert.ToInt32(((Label)s.FindControl("lblCD")).Text))
    .ToList(); 

OfType 是必需的,因为 GridViewRowCollection 实现了 IEnumerable但不是 IEnumerable<T> .

public class GridViewRowCollection : ICollection, IEnumerable

关于c# - 如何将 Lambda 表达式输出转换为 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5294486/

相关文章:

c# - 在尝试访问控制的 cs 页面中使用 'this' 时出错

c# - 数据库中的最佳货币格式

c# - Dapper 无法将类型为 'Dapper.WrappedReader' 的对象转换为类型 'System.Data.SqlClient.SqlDataReader'

C# 异常行号始终为零 (0)

asp.net - 如何在网站中添加丰富网页摘要?

c# - 在母版页的代码后面更改样式表

c# - 如何通过 Razor Pages 扩展 ASP.NET Core MVC 项目?

asp.net - .NET MVC 4 自定义控件

jquery - Bundle.cs 使用哪个版本的 JQuery

c# - 如何从表达式中获取子声明类型?