代码中的表达式术语错误无效

时间:2013-05-21 22:23:40

标签: c# asp.net asp.net-mvc-4

  • 错误1'int.TryParse(string,out int)'的最佳重载方法匹配有一些无效的参数
  • 错误2参数1:无法从'int'转换为'string'

    它在“int.TryParse(surveys.First(),out id)中给出了错误;”

       L
          var surveys = (from su in DbContext.Surveys
                                   where su.userName == su.userName 
                                   select su.ID);
    if(surveys.Count() > 0)
                {
                 int id = 0;
                 int.TryParse(surveys.First(), out id);
                   return id;
                 }
                 return 0;
    

2 个答案:

答案 0 :(得分:10)

从TryParse();

中删除int
int.TryParse(surveys.First(), out int id);

应该是

int.TryParse(surveys.First(), out id);

更改: -

List<SurveyContext> surveys = (from su in DbContext.Surveys
                                          where su.userName == su.userName 
                                          select su.ID).ToList();

List<string> surveys = (from su in DbContext.Surveys
                                          where su.userName == su.userName 
                                          select su.ID);

您正在尝试在Linq中选择string类型,并将其放入List<SomeType>List<int>应为 var surveys = (from su in DbContext.Surveys where su.userName == su.userName select su.ID); //Code follows int.TryParse(surveys.First(), out id);

{{1}}

答案 1 :(得分:0)

听起来你想要这样的东西。将int数据类型移动到变量的声明,并在First()方法之后添加属性字段名称。 (或者您拥有其Id的Survey对象上的任何等效属性)

if(surveys.Count() > 0)
{
    int id = 0;
    int.TryParse(surveys.First().Id, out id);
    return id;
}
return null;

<强>更新: 我看到你已经更新了这个问题,看起来你应该做的就是诀窍......