我有一个快速linq问题。我有一个应该返回一行数据的存储过程。我想用lambda来构建一个对象。这是我目前正在做的工作,但我知道我应该能够使用First而不是Select,除非我似乎无法得到正确的语法。任何人都可以把我拉直吗?谢谢你的帮助。如何使用linq从1行数据构建对象?
var location = new GeoLocationDC();
DataSet ds = db.ExecuteDataSet(dbCommand);
if(ds.Tables[0].Rows.Count == 1)
{
var rows = ds.Tables[0].AsEnumerable();
var x = rows.Select(
c => new GeoLocationDC
{
Latitude = Convert.ToInt32(c.Field<string>("LATITUDE")),
Longitude = Convert.ToInt32(c.Field<string>("LONGITUDE"))
}).ToList();
if(x.Count > 0)
{
location = x[0];
}
干杯, 〜CK }
我想通了,我想要的东西而不是ToList()的,我应该使用。首先()这给了我我想要的结果。 var rows = ds.Tables [0] .AsEnumerable(); 位置= rows.Select(C =>新GeoLocationDC { 纬度= Convert.ToInt32(c.Field( “纬度”)), 经度= Convert.ToInt32(c.Field ( “经度”)) } )。第一(); PS我喜欢。任何建议。我以前没有用过。谢谢! –
Hcabnettek
2010-06-17 15:23:51
您实际上并不需要使用“选择” - 请确保在关闭问题前阅读答案。 – 2010-06-17 15:27:07
更好的问题是,如果你只有一行你想创建一个对象,为什么要使用LINQ呢?不必要的管道,伊莫。 – Marc 2010-06-17 15:39:01