C# 如何将linq查询结果获取为int

C# 如何将linq查询结果获取为int,c#,linq,C#,Linq,下面的查询返回单个值,例如50。我想把它赋值给int,这样我就可以用这个值做一些计算。我该怎么做 var LTLimit = from a in dbavailability.tACLicenseTypes where a.License_Type == "Long Term" select a.Limit; string AST = ""; 查询的返回类型是什么? 如果返回的类型是另一种原始数据类型(如字符

下面的查询返回单个值,例如50。我想把它赋值给int,这样我就可以用这个值做一些计算。我该怎么做

var LTLimit = from a in dbavailability.tACLicenseTypes
                  where a.License_Type == "Long Term"
                  select a.Limit;



    string AST = "";

查询的返回类型是什么? 如果返回的类型是另一种原始数据类型(如字符串),则可以尝试使用以下命令将其转换为整数:

var i = Convert.ToInt32(LTLimit);
或使用:

int.TryParse(LTLimit, out var i);

但是,如果数据首先以正确的类型存储会更好。

我不完全清楚您在问什么,但您的Linq查询返回的数据类型可能不是
int
,您想将其转换为int吗?如果是,只需将其转换为int:

var LTLimit = (from a in dbavailability.tACLicenseTypes
                  where a.License_Type == "Long Term"
                  select a.Limit).ToList();

int LTLimitInt = 0
if (!int.TryParse(LTLimit.First(), out LTLimitInt))
{
    Console.WritLine("LTLimit is not a number!")
}

由于您已经更新了问题,下面是一个将返回的数字转换为int的解决方案,将其乘以2,然后将结果转换为字符串:

var LTLimit = (from a in dbavailability.tACLicenseTypes
                  where a.License_Type == "Long Term"
                  select a.Limit).ToList();

int LTLimitInt = 0;
string multipliedResultStr = string.Empty;
if (!int.TryParse(LTLimit.First(), out LTLimitInt))
{
    Console.WritLine("LTLimit is not a number!")
}
else 
{
    multipliedResult = (LTLimitInt * 2).ToString();
    Console.WriteLine(string.Format("Result is {0}, multipliedResult ));
}
编辑
更正了从列表中获取第一项的代码。

以下代码是检索查询中返回的第一个整数的一种方法:

var LTLimit = (from a in dbavailability.tACLicenseTypes
              where a.License_Type == "Long Term"
              select a.Limit).ToList();

int limit = LTLimit[0];
可以在where()之后使用Sum()作为对象属性的值


像这样
bonus.Where(b=>b.Id==x.key&&b.RequiredScore.HasValue).Sum(b=>b.RequiredScore.Value)

50
是一个
int
。我不明白你在问什么。你可以使用Convert、Int.Parse或Int.TryParse。我建议您尝试这三种方法,看看哪一种最适合您的情况。对不起,我的意思是上面查询的结果,我想乘以2,然后转换为字符串值。如果您向我们展示
dbavailability.tACLicenseTypes
的类型,这将非常有帮助。特别是
tACLicenseTypes.Limit的类型,这样我们就知道
LTLimit的类型了。另外,不要在评论中说“对不起,我的意思是”,编辑你的问题以使你的意思更清楚,并添加一条评论,说“谢谢,我已经更新并澄清了我的问题”。如果结果中没有整数,那该怎么办?当然会有错误,但是您可以添加一个IF语句来检查列表中是否有超过0项对不起,我的意思是上面查询的结果,我想乘以2,然后转换为字符串value@Hobas我已经更新了我的答案把你的查询结果转换成int乘以2,然后将结果转换回字符串。由于LTLimit不会生成单个结果,因此不会编译此结果。它也需要首先执行。