linq查询子句中的IF语句
我已经写了一个LINQ查询子句,但是出现了一个错误。有人能帮我吗。提前感谢:linq查询子句中的IF语句,linq,linq-to-sql,linq-to-entities,Linq,Linq To Sql,Linq To Entities,我已经写了一个LINQ查询子句,但是出现了一个错误。有人能帮我吗。提前感谢: list = (from cr in dt.AsEnumerable() select new Cards { MemberNumber = cr.Field<string>("MemberNumber"), if( cr.Field<int>("CardState")==0) { CardState ="aaa"; } if( cr.Field
list = (from cr in dt.AsEnumerable()
select new Cards
{
MemberNumber = cr.Field<string>("MemberNumber"),
if( cr.Field<int>("CardState")==0)
{
CardState ="aaa";
}
if( cr.Field<int>("CardState")==1)
{
CardState ="bbb";
}
if( cr.Field<int>("CardState")==2)
{
CardState ="ccc";
}
if( cr.Field<int>("CardState")==3)
{
CardState ="ddd";
}
if( cr.Field<int>("CardState")==4)
{
CardState ="eee";
}
}).ToList<Cards>();
list=(从dt.AsEnumerable()中的cr开始)
选择新卡
{
MemberNumber=cr.Field(“MemberNumber”),
如果(cr.Field(“CardState”)==0)
{
CardState=“aaa”;
}
如果(cr.Field(“CardState”)==1)
{
CardState=“bbb”;
}
如果(cr.Field(“CardState”)==2)
{
CardState=“ccc”;
}
如果(cr.Field(“CardState”)==3)
{
CardState=“ddd”;
}
如果(cr.Field(“CardState”)==4)
{
CardState=“eee”;
}
}).ToList();
在初始值设定项中不能有这样的分支逻辑。但是,您可以将其写成一系列三元运算符:
list = (from cr in dt.AsEnumerable()
select new Cards
{
MemberNumber = cr.Field<string>("MemberNumber"),
CardState = ( cr.Field<int>("CardState")==0) ? "aaa" :
( cr.Field<int>("CardState")==1) ? "bbb" :
( cr.Field<int>("CardState")==2) ? "ccc" :
( cr.Field<int>("CardState")==3) ? "ddd" :
( cr.Field<int>("CardState")==4) ? "eee" :
( cr.Field<int>("CardState")==5) ? "bbb" : null
}).ToList<Cards>();
list=(从dt.AsEnumerable()中的cr开始)
选择新卡
{
MemberNumber=cr.Field(“MemberNumber”),
CardState=(cr.Field(“CardState”)==0)?“aaa”:
(cr.Field(“CardState”)==1?“bbb”:
(cr.Field(“CardState”)==2)?“ccc”:
(cr.Field(“CardState”)==3)?“ddd”:
(cr.Field(“CardState”)==4)?“eee”:
(cr.Field(“CardState”)==5?“bbb”:空
}).ToList();
尽管更好的解决方案可能是将该代码块分离到单独的函数中,并从初始值设定项中调用它:
list = (from cr in dt.AsEnumerable()
select new Cards
{
MemberNumber = cr.Field<string>("MemberNumber"),
CardState = GetCardState( cr.Field<int>("CardState"))
}).ToList<Cards>();
list=(从dt.AsEnumerable()中的cr开始)
选择新卡
{
MemberNumber=cr.Field(“MemberNumber”),
CardState=GetCardState(cr.Field(“CardState”))
}).ToList();
当我们被要求调试“错误”时,我喜欢它。