在查询下面返回单个值,例如50。我希望将其分配给int,以便可以对该值进行一些计算。我该怎么做
object AddressList: MutableLiveData<List<Address>>()
fun getAddressesLiveData(): LiveData<List<Address>> {
GlobalScope.launch {
withContext(Dispatchers.Main){ AddressList.value = getAddressList() }
}
return AddressList
}
答案 0 :(得分:1)
我不清楚您要问的是什么,但是您的Linq查询返回的数据类型可能是 not 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 ));
}
更正代码以从列表中获取第一项。
答案 1 :(得分:0)
查询的返回类型是什么? 如果返回的类型是其他基本数据类型(例如字符串),则可以尝试使用:
将其转换为整数var i = Convert.ToInt32(LTLimit);
或使用:
int.TryParse(LTLimit, out var i);
但是,首先将数据存储在正确的类型中会更好。
答案 2 :(得分:0)
以下代码是检索查询中返回的第一个整数的一种方法:
var LTLimit = (from a in dbavailability.tACLicenseTypes
where a.License_Type == "Long Term"
select a.Limit).ToList();
int limit = LTLimit[0];
答案 3 :(得分:0)
您可以在where()之后使用Sum()作为对象属性的值
像bonus.Where(b => b.Id == x.key && b.RequiredScore.HasValue).Sum(b => b.RequiredScore.Value);