C# 如何检查列表中的值?I';我将在if语句中使用它
我想检查列表字段金额是否不等于0 在下面尝试过这个,很明显这是不可能的。还有其他方法来执行我的逻辑吗C# 如何检查列表中的值?I';我将在if语句中使用它,c#,linq,C#,Linq,我想检查列表字段金额是否不等于0 在下面尝试过这个,很明显这是不可能的。还有其他方法来执行我的逻辑吗 if(listItems.Values.Select(x=> x.Amount !=0)) { //code } 我要打印包含金额的列表值!=0只需使用where子句即可获得其金额不为零的值: var result = listItems.Values.Where(x=> x.Amount !=0) 然后: 也许这会有帮助 foreach (item in list
if(listItems.Values.Select(x=> x.Amount !=0))
{
//code
}
我要打印包含金额的列表值!=0只需使用where子句即可获得其金额不为零的值:
var result = listItems.Values.Where(x=> x.Amount !=0)
然后:
也许这会有帮助
foreach (item in list)
{
if (item != 0)
//code
}
只需使用.Any作为布尔返回
if (listItems.Values.Any(x=> x.Amount !=0))
{
}
用于将它们打印到控制台
listItems.Values.Where(x => x.Amount !=0).ForEach(x=> Console.WriteLine(x.Amount));
获取具有
金额!=使用Where
子句0
,然后检查计数()
很可能您正在查找Any()
,以查看是否有任何元素符合以下条件。也可以代替=代码>您可能需要检查大于条件(考虑到您所说的列表中没有负值)
请解释这可能有帮助的原因。更好的方法:使用接受委托作为参数的Count
方法:if(listItems.Values.Count(x=>x.Amount!=0)>0{}
@SebastianHofmann OP需要筛选后列表上的项目,所以最好使用Where
哦,我明白了。在这种情况下,我将使用Any()
而不是Count()>0
Any()
只返回bool
,然后它仍然需要再次过滤列表以获得结果
listItems.Values.Where(x => x.Amount !=0).ForEach(x=> Console.WriteLine(x.Amount));
var resultList = listItems.Values.Where(x => x.Amount != 0);
if(resultList.Count() > 0)
{
//do what you want
}
if(listItems.Values.Any(x => x.Amount > 0))
{
//code
}