SqlParameter[] _parameters = {
new SqlParameter( "@IDNumber", Person.IDNumber ),
new SqlParameter( "@Name", Person.Name ),
new SqlParameter( "@Surname", Person.Surname )
};
如何获得"名称"来自对象数组的值而不使用索引?我想做的是,
oPerson.Name = _parameters.Find(@Name).Value;
答案 0 :(得分:3)
使用以下内容:
_parameters.Single(p => p.ParameterName == "@Name").Value;
这假设存在一个且只有SqlParameter
具有给定ParameterName
的实例。如果您不确定是否存在,请执行以下操作:
var param = _parameters.SingleOrDefault(p => p.ParameterName == "@Name");
if (param != null) { oPerson.Name = param.Value; }
答案 1 :(得分:3)
使用Linq,很容易
string pName = "@Name";
var p = _parameters.FirstOrDefault(x => x.ParameterName == pName);
if(p != null)
oPerson.Name = p.Value.ToString();
我认为您需要此代码,因为您不确定参数是否存在。因此,如果您的参数不存在于集合
中,那么使用FirstOrDefault
可以测试结果而不直接使用Value属性
答案 2 :(得分:2)
您可以使用First
方法,并通过Name
获取参数。
oPerson.Name = _parameters.First(x => x.ParameterName == "@Name").Value;
答案 3 :(得分:2)
您可以像
一样使用LinqoPerson.Name = _parameters.First( param => param.ParameterName.Equals("@Name")).Value;
再次搜索"@Name"
的值。