繁体   English   中英

如何将 linq 查询结果获取到 int

[英]how to get a linq query result to int

下面的查询返回单个值,例如 50。我希望将它分配给 int,以便我可以使用该值进行一些计算。 我怎样才能做到这一点

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



    string AST = "";

我不完全清楚你在问什么,但大概你的 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 i = Convert.ToInt32(LTLimit);

或使用:

int.TryParse(LTLimit, out var i);

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

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

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM