C# 从对象列表、下拉列表中选择对象
当C# 从对象列表、下拉列表中选择对象,c#,asp.net,list,linq,C#,Asp.net,List,Linq,当下拉列表绑定到作业对象列表时,绑定是直接绑定还是完全单独的列表?我一直在使用LINQ表达式从选择中提取单个作业对象,如下所示: job selectedJob = (JobList.Single(j => j.JobID == Convert.ToInt32(jobDropDown.SelectedValue))); 对于我正在尝试做的事情来说,这是一个巨大的过度杀伤力吗?有没有一种更短/更容易/更有效的方法 次要编辑:我使用了Convert.ToInt32,以防ValueMember
下拉列表
绑定到作业
对象列表时,绑定是直接绑定还是完全单独的列表?我一直在使用LINQ表达式从选择中提取单个作业
对象,如下所示:
job selectedJob = (JobList.Single(j => j.JobID == Convert.ToInt32(jobDropDown.SelectedValue)));
对于我正在尝试做的事情来说,这是一个巨大的过度杀伤力吗?有没有一种更短/更容易/更有效的方法
次要编辑:我使用了
Convert.ToInt32
,以防ValueMember在webcontrol分配中被转换为字符串。我知道这可能是不必要的。对我来说,这看起来并不过分,而且相当简单。我能看到的唯一问题是使用.Single()
,如果没有找到结果或找到重复的结果,它将抛出一个错误。如果您需要确保只有一个结果,那么使用.Single()
应该可以,尽管即使找到一个结果也必须处理整个列表。使用.FirstOrDefault()
会更好,因为它会在找到第一个结果后返回,或者返回null of none。在我看来,这看起来并不过分,而且相当简单。我能看到的唯一问题是使用.Single()
,如果没有找到结果或找到重复的结果,它将抛出一个错误。如果您需要确保只有一个结果,那么使用.Single()
应该可以,尽管即使找到一个结果也必须处理整个列表。使用.FirstOrDefault()
会更好,因为一旦找到第一个结果,它就会返回,或者会返回null或none。只是为了澄清一下,下面的做法是否不好job selectedJob=jobDropDown.Find(j=>j.Selected==true)代码>假设您使用的是列表
对象,根据,这应该与。两者都做同样的事情。但是j.Selected==true
有点多余。谓词可以是j。选择。只是为了澄清一下,下面的做法是否不好job selectedJob=jobDropDown.Find(j=>j.Selected==true)代码>假设您使用的是列表
对象,根据,这应该与。两者都做同样的事情。但是j.Selected==true
有点多余。谓词只能选择j。