首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlParameter数组到对象

SqlParameter数组到对象
EN

Stack Overflow用户
提问于 2014-03-19 12:19:13
回答 4查看 864关注 0票数 2
代码语言:javascript
复制
SqlParameter[] _parameters = {                
     new SqlParameter( "@IDNumber", Person.IDNumber ),
     new SqlParameter( "@Name", Person.Name ),
     new SqlParameter( "@Surname", Person.Surname )
};

如何在不使用索引的情况下从对象数组中获取"Name“值?我想做的是,

代码语言:javascript
复制
oPerson.Name = _parameters.Find(@Name).Value;
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-19 12:22:39

使用以下方法:

代码语言:javascript
复制
_parameters.Single(p => p.ParameterName == "@Name").Value;

这假设存在一个和唯一一个具有给定SqlParameterParameterName实例。如果不确定是否存在,请执行以下操作:

代码语言:javascript
复制
var param = _parameters.SingleOrDefault(p => p.ParameterName == "@Name");
if (param != null) { oPerson.Name = param.Value; }
票数 3
EN

Stack Overflow用户

发布于 2014-03-19 12:23:38

使用Linq,很容易

代码语言:javascript
复制
string pName = "@Name";
var p = _parameters.FirstOrDefault(x => x.ParameterName == pName);
if(p != null) 
    oPerson.Name = p.Value.ToString();

我假设您需要这段代码,因为您不确定参数的存在与否。因此,如果您的参数在集合中不存在,使用FirstOrDefault允许测试结果,而无需直接使用Value属性。

票数 3
EN

Stack Overflow用户

发布于 2014-03-19 12:22:01

您可以使用First方法并通过它的Name获取参数。

代码语言:javascript
复制
oPerson.Name = _parameters.First(x => x.ParameterName == "@Name").Value;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22505615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档