viewDto.DiagnosisType = CommonHelper.GetDiagnosisTypeEnumText(viewdto.DiagnosisType);
错误提示:
错误 48 无法将类型“string”隐式转换为“Dto.DiagnosisTypeEnum” C:\Users\Administrator\Desktop\new project\trunk\1.0\ServerHostWeb\Controllers\PatientController.cs 189 45 ServerHostWeb
IList<PatientDiagnosisDto> diagnosissList = svc.GetPatientDiagnosis(patientId);
List<PatientDiagnosisViewDto> list = new List<PatientDiagnosisViewDto>();
foreach (PatientDiagnosisDto viewdto in diagnosissList)
{
PatientDiagnosisViewDto viewDto = new PatientDiagnosisViewDto();
viewDto.DiagnosisType = CommonHelper.GetDiagnosisTypeEnumText(viewdto.DiagnosisType);
}
var diagnosiss = diagnosissList.Where(d => d.Status == ValidStatusEnum.Valid).OrderBy(d => d.DiagnosisType);
info.DiagnosissList = diagnosiss.ToList();
commonhelper的代码
public static string GetDiagnosisTypeEnumText(DiagnosisTypeEnum diagnosisType)
{
switch (diagnosisType)
{
case DiagnosisTypeEnum.Principal:
return "主诊断";
case DiagnosisTypeEnum.Protopathy:
return "原病发";
case DiagnosisTypeEnum.Complication:
return "并发症";
case DiagnosisTypeEnum.Suspected:
return "疑似诊断";
default:
return "其他诊断";
}
}
哥们儿,又见CommonHelper。string类型不能转换成你的Dto.DiagnosisTypeEnum这种枚举类型,我就不明白了,为什么要把string转换成枚举类型,不过定义枚举的时候你可以这样,public Enum ErrorType : int,不过是在要转换的话,还是写个工具类吧
du多谢大师兄 但是工具类怎么写啊
w哦刚开始学 我尝试一下 多谢
@糯米好吃: 给你一个工具类吧,是我自己写的。
/// <summary> /// 对Object进行扩展 /// </summary> public static class ObjectExtensions { #region 把对象类型转换成指定的类型,转化失败时返回指定默认值 /// <summary> /// 把对象类型转换成指定的类型,转化失败时返回指定默认值 /// </summary> /// <typeparam name="T">动态类型</typeparam> /// <param name="value">要转换的原对象</param> /// <param name="detaultValue">转换失败时返回的默认值</param> /// <returns>转化后指定类型对象,转化失败时返回指定默认值</returns> public static T CastTo<T>(this object value, T detaultValue) { object result; Type t = typeof(T); try { result = t.IsEnum ? System.Enum.Parse(t, value.ToString()) : Convert.ChangeType(value, t); } catch (Exception) { return detaultValue; } return (T)result; } #endregion #region 把对象类型转换成指定的类型,转化失败时返回类型默认值 /// <summary> /// 把对象类型转换成指定的类型,转化失败时返回类型默认值 /// </summary> /// <typeparam name="T">动态类型</typeparam> /// <param name="value">要转换的原对象</param> /// <returns>转化后指定类型对象,转化失败时返回类型默认值</returns> public static T CastTo<T>(this object value) { object result; Type t = typeof(T); try { if (t.IsEnum) { result = System.Enum.Parse(t, value.ToString()); } else if (t == typeof(Guid)) { result = Guid.Parse(value.ToString()); } else { result = Convert.ChangeType(value, t); } } catch (Exception) { result = default(T); } return (T)result; } #endregion }
@大师兄丶: 多谢大师兄 哭了
@大师兄丶: 大师兄你学c#多久了 工作多久了 我还有机会吗
@糯米好吃: 才开始学都是这样的,没有人能够一步登天,慢慢一点点的理解,不要想到一下子就全部理解学会了。另外我参加工作一年多了,去年这个时候,还是个准大学生。加油,哥们了!
专科还是本科?
@糯米好吃: 211
类型转换错误啊,string不能转换Dto.DiagnosisTypeEnum,使用强制转换