读书人

System.Linq.Enumerable.WhereSelectL

发布时间: 2013-01-08 14:02:13 作者: rapoo

System.Linq.Enumerable.WhereSelectListIterator<MODEL.QueryTable,string>

public static List<QueryTable> QueryTable
{
get
{
var x = new List<QueryTable>()
{
new QueryTable() {Name = "Stretch120End", TableName = "PRO_Stretch120_end"},
new QueryTable() {Name = "StoreProduct", TableName = "PRO_Store_Product"},
new QueryTable() {Name = "StoreIn", TableName = "PRO_Store_In,PRO_Store_In_Detail"},
new QueryTable() {Name = "StoreOut", TableName = "PRO_Store_Out,PRO_Store_OUT_Detail"},
new QueryTable() {Name = "Measurement80Insert", TableName = "PRO_measurement80"}
};
return x;
}
}


var arrays = from a in MODEL.Query.QueryTable.AsEnumerable()
where a.Name == selectcols//selectcols为传过来的一个值
select a.TableName ;

//各位帮我看看哪有问题,为什么arrays 等到的是
//System.Linq.Enumerable.WhereSelectListIterator<CHINAZTT.ZTAM.MODEL.QueryTable,string>


[解决办法]
List<string> arrays = (from a in MODEL.Query.QueryTable
where a.Name == selectcols//selectcols为传过来的一个值
select a.TableName).ToList() ;
[解决办法]
那你想得到什么?
[解决办法]
引用:
引用:

那你想得到什么?
比如 selectcols传过来的是“ StoreOut ”,我就想得到"PRO_Store_Out,PRO_Store_OUT_Detail"


那你应该这样:
string arrays = (from a in MODEL.Query.QueryTable
where a.Name == selectcols//selectcols为传过来的一个值
select a.TableName).FirstOrDefault() ;
[解决办法]
这是延迟执行,只有在foreach 遍历的时候才赋值,
.ToList()直接赋值
看看这篇文章
http://kb.cnblogs.com/a/2317529/

[解决办法]
select a;
select a.TableName ;

二者唯一不同就是返回值类型,第一个返回整个实体
第二个只返回其中一string类型的属性 TableName

读书人网 >.NET

热点推荐