if (jc2 != null)
                {
                    var bValue = (from n in jc2 where n.id == 48 select n).FirstOrDefault(); //B超检查结果
                    var value = "";
                    if (bValue != null)
                    {
                        var bAnswer = bValue.answer;
                         if (bAnswer.Contains(";"))//多选
                        {
                            string[] dxArray = bAnswer.Split(';');
                            for (var j=0;j<dxArray.Length;j++)
                            {
                                value = dxArray[j];
                                if (value == "A")
                                    v = "未见异常 ";
                                else if (value == "B")
                                {
                                    v += "肝脾肿大 ";
                                }
                                else if (value == "C")
                                {
                                    v += "慢性肝病 ";
                                }
                                else if (value == "D")
                                {
                                    v += "脂肪肝 ";
                                }
                                else if (value == "E")
                                {
                                    v += "肝硬化 ";
                                }
                                else if (value == "F")
                                {
                                    v += "疑似肝癌 ";
                                }
                                else if (value == "G")
                                {
                                    v += "其他 ";
                                }
                                else
                                {
                                    if (value.Contains("-"))
                                    {
                                        string[] bArray = value.Split('-');
                                        v += bArray[1];
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (bAnswer == "A")
                                v = "未见异常";
                            else if (bAnswer == "B")
                            {
                                v += "肝脾肿大";
                            }
                            else if (bAnswer == "C")
                            {
                                v += "慢性肝病";
                            }
                            else if (bAnswer == "D")
                            {
                                v += "脂肪肝";
                            }
                            else if (bAnswer == "E")
                            {
                                v += "肝硬化";
                            }
                            else if (bAnswer == "F")
                            {
                                v += "疑似肝癌";
                            }
                            else if (bAnswer == "G")
                            {
                                v += "其他";
                            }
                            else
                            {
                                if (bAnswer.Contains("-"))
                                {
                                    string[] bArray = bAnswer.Split('-');
                                    v = bArray[1];                                }
                            }
                        
                        }

解决方案 »

  1.   

    弄个字典,从A-G映射到具体的症状
    然后就可以用linq把整个字符串替换成实际的症状列表了
      

  2.   

    这么多if,用switch
      

  3.   

    其实还是可以用Contains
      if (s.Contains("A"))
                    ss += "1";
                if (s.Contains("B"))
                    ss += "2";
                if (s.Contains("C"))
                    ss += "3";
      

  4.   

    Dictionary<T1,T2>你会发现神奇的东西