【问题标题】:Selecting an object from a list of objects, from a DropDownList从对象列表中选择对象,从 DropDownList
【发布时间】:2019-09-17 15:46:06
【问题描述】:

DropDownList 绑定到 job 对象列表的位置,是直接绑定还是完全单独的列表?我一直在使用 LINQ 表达式从选择中提取单个 job 对象,如下所示:

job selectedJob = (JobList.Single(j => j.JobID == Convert.ToInt32(jobDropDown.SelectedValue)));

这对我正在尝试做的事情来说是不是太大了,有没有更短/更容易/更有效的方法?

次要编辑:我使用Convert.ToInt32 以防万一 ValueMember 在 webcontrol 分配中转换为字符串。我知道这可能是不必要的。

【问题讨论】:

    标签: c# asp.net list linq


    【解决方案1】:

    对我来说这看起来并不过分,而且看起来相当简单。我能看到的唯一问题是使用.Single(),如果没有找到结果或找到重复的结果,它将引发错误。如果您需要确保只有一个结果,那么使用.Single() 应该没问题,尽管即使找到结果也必须处理整个列表。使用.FirstOrDefault() 会更好,因为它会在找到第一个结果后返回,或者返回空值。

    【讨论】:

    • 只是为了澄清一下,以下是不好的做法吗? job selectedJob = jobDropDown.Find( j => j.Selected == true );
    • 假设您正在使用List 对象,根据source,它应该与FirstOrDefault 一样有效。两者都做同样的事情。 j.Selected == true 虽然有点多余。谓词只能是j.Selected
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    相关资源
    最近更新 更多