【问题标题】:Type of conditional expression cannot be determined because there is no implicit conversion between 'Entities.KRAParameterInfo' and 'string'无法确定条件表达式的类型,因为 'Entities.KRAParameterInfo' 和 'string' 之间没有隐式转换
【发布时间】:2017-10-27 05:14:05
【问题描述】:
lstInitializeGoal = (from itemEmployees in itemsEmployees.Cast<SPListItem>().AsEnumerable()
    select new Business.Entities.InitializeGoal
    {
        UserId = null != itemEmployees[Business.Enums.Employees.LoginName.ToString()]
            ? Convert.ToString(itemEmployees[Business.Enums.Employees.LoginName.ToString()]).Split(';')[0]
            : string.Empty,
        EmployeeName = null != itemEmployees[Business.Enums.Employees.LoginName.ToString()]
            ? Convert.ToString(itemEmployees[Business.Enums.Employees.LoginName.ToString()]).Split('#')[1]
            : string.Empty,
        LeadUserId = null != itemEmployees[Business.Enums.Employees.ReportingTo.ToString()]
            ? Convert.ToString(itemEmployees[Business.Enums.Employees.ReportingTo.ToString()]).Split(';')[0]
            : string.Empty,
        ReportingTo = null != itemEmployees[Business.Enums.Employees.ReportingTo.ToString()]
            ? Convert.ToString(itemEmployees[Business.Enums.Employees.ReportingTo.ToString()]).Split('#')[1]
            : string.Empty,
        Designation = null != itemEmployees[Business.Enums.Employees.Designation.ToString()]
            ? Convert.ToString(itemEmployees[Business.Enums.Employees.Designation.ToString()]).Split('#')[1]
            : string.Empty,
        WorkStatus = null != itemEmployees[Business.Enums.Employees.WorkStatus.ToString()]
            ? Convert.ToString(itemEmployees[Business.Enums.Employees.WorkStatus.ToString()])
            : string.Empty,
        GoalRequired = null != itemEmployees[Business.Enums.Employees.GoalRequired.ToString()]
            ? Convert.ToString(itemEmployees[Business.Enums.Employees.GoalRequired.ToString()])
            : string.Empty,
        GoalStatus = "Pending",
        KRAParameter = null != itemEmployees[Business.Enums.Employees.Designation.ToString()]
            ? kraParameterColl.FirstOrDefault(tempKRAParameter => 
                tempKRAParameter.Designation == Convert.ToString(itemEmployees[Business.Enums.Employees.Designation.ToString()]).Split('#')[1])
            : string.Empty,
        IsEnabled = true
    }).ToList();

【问题讨论】:

  • 我在 KRAParameter = null != itemEmployees[Business.Enums.Employees.Designation.ToString()] 上遇到错误? kraParameterColl.FirstOrDefault(tempKRAParameter=>tempKRAParameter.Designation == Convert.ToString(itemEmployees[Business.Enums.Employees.Designation.ToString()]).Split('#')[1]):string.Empty,任何人都可以请建议什么错误以及为什么?
  • 请回头看看你的帖子。它可读吗?为避免此类问题,请在提问之前显示How to Ask 页面,请仔细阅读并编辑问题。肯定有人会帮你解决问题

标签: c# linq


【解决方案1】:

我的猜测是,这是该代码中倒数第二个赋值,在您的三元条件下,: 的两侧似乎有两种不同的类型:

KRAParameter = (null != itemEmployees[Business.Enums.Employees.Designation.ToString()])
    ? kraParameterColl.FirstOrDefault(tempKRAParameter => 
        tempKRAParameter.Designation == Convert.ToString(
            itemEmployees[Business.Enums.Employees.Designation.ToString()]).Split('#')[1])
    : string.Empty

具体看类型,条件表达式看起来像:

KRAParameter = (condition) ? KRAParameterInfo : string;

错误是说它无法确定要分配的类型,因为KRAParameterInfostring 之间没有常见的类型转换。


一个可能的解决方法是使用类型的默认值(对于类为 null):

KRAParameter = (null != itemEmployees[Business.Enums.Employees.Designation.ToString()])
    ? kraParameterColl.FirstOrDefault(tempKRAParameter => 
        tempKRAParameter.Designation == Convert.ToString(
            itemEmployees[Business.Enums.Employees.Designation.ToString()]).Split('#')[1])
    : default(KRAParameterInfo)

或者将第一部分显式转换为字符串:

KRAParameter = (null != itemEmployees[Business.Enums.Employees.Designation.ToString()])
    ? Convert.ToString(kraParameterColl.FirstOrDefault(tempKRAParameter => 
        tempKRAParameter.Designation == Convert.ToString(
            itemEmployees[Business.Enums.Employees.Designation.ToString()]).Split('#')[1]))
    : string.Empty

【讨论】:

    猜你喜欢
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2016-03-08
    相关资源
    最近更新 更多