Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从对象列表、下拉列表中选择对象_C#_Asp.net_List_Linq - Fatal编程技术网

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。