Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查列表中的值?I';我将在if语句中使用它_C#_Linq - Fatal编程技术网

C# 如何检查列表中的值?I';我将在if语句中使用它

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

我想检查列表字段金额是否不等于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 (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
}