读书人

LINQ 表达式中的三元表达式判断 10

发布时间: 2013-12-21 20:16:01 作者: rapoo

LINQ 表达式中的三元表达式判断 ,,,################# 100% 结贴

 string check = "<a  href='CheckBillsOfLading.aspx?id={0}' >校验提货单>></a>";
string checkLading = "<a href='CheckBillsOfLading.aspx?id={0}'>查看提单</a>";
string ApplyBack = "<a href='ApplyBack.aspx?id={0}' >申请AA>></a>";
string EitPrice = "<a href='EitPrice.aspx?id={0}'>AA价修改</a>";
string BuybackDelivery = "<a href='Buyback.aspx?id={0}' >申请CC></a><br/><a href='Delivery.aspx?id={0}' >申请交割></a>"; //卖家111

var result = from m in Mtinfolist
select new
{
m.ID,
m.GoodsName,
m.Price,
m.Num,
m.BUserId,
m.State,
m.CreateTime,
DIS = m.StateNum == 5 ? string.Format(check,m.ID) : (m.StateNum==12?string.Format(ApplyBack,m.ID):(m.StateNum==11?string.Format(EitPrice,m.ID): string.Format(checkLading,m.ID)))


DIS现在还有好几种情况要加进来,现在上面已经有checkLading ,ApplyBack 等四个啦,。继续写三元表达式感觉不行,, 请问大神们还有没有其他办法?
[解决办法]
外部定义个字典, key: m.StateNum value: html

Dictionary<int,string> dic=new Dictionary<int,string>();
dic.Add(5,"<a href='CheckBillsOfLading.aspx?id={0}' >校验提货单>></a>");


然后:
DIS?=dic.ContainsKey(m.StateNum)? string.Format(dic[m.StateNum],m.ID):"";

读书人网 >.NET

热点推荐