Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.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

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# LINQ到空集合_C#_Linq - Fatal编程技术网

C# LINQ到空集合

C# LINQ到空集合,c#,linq,C#,Linq,我的虚拟机中有一个简单的linq: public int MaxItem => Collection.Max((c)=> c.Count); 如果集合中充满了项目,则它没有问题。但如果我需要像这样清除它: Collection.Clear(); 那么我有一个例外: System.InvalidOperationException异常 如何修复它?Max(和Min)对于空集合是未定义的,因此唯一合理的行为是在序列没有项时抛出异常 如果您的收集需要特殊处理,请检查空(或“满项”)条

我的虚拟机中有一个简单的linq:

 public int MaxItem => Collection.Max((c)=> c.Count);
如果
集合
中充满了项目,则它没有问题。但如果我需要像这样清除它:

Collection.Clear();
那么我有一个例外:

System.InvalidOperationException异常

如何修复它?

Max
(和
Min
)对于空集合是未定义的,因此唯一合理的行为是在序列没有项时抛出异常

如果您的收集需要特殊处理,请检查空(或“满项”)条件并调用不同的方法:

   public int MaxItem => Collection.IsFullOfItems ? 
        Collection.Max((c)=> c.Count) : 0;
(如果没有自定义的
IsFullOfItems
属性,则可以对大多数集合类型使用
Any()
Count!=0


或者,如果
Collection
是自定义类,则可以实现自己的
Max(Func谓词)
方法,它将在
集合.Max
调用中使用,而不是默认的
可枚举.Max
扩展方法。

当集合中没有项目时,您希望发生什么情况?您的
集合的类型是什么?@Servy I want-->
MaxItem
=0。@С砦砦砦砦当集合为空时是否返回该值?
collection.Any()?Collection.Max((c)=>c.Count):0