通用方法可能会引发异常

泽维尔·W。

我有一个全局linq扩展方法,该方法从给定列表中检索最具代表性的元素。这是示例:

public static T GetMostRepresentedElement<T, U>(this IEnumerable<U> _Collection, Func<U, T> _GetElem)
{
    return _Collection.GroupBy(e => _GetElem(e))
                      .Select(f => new
                      {
                          Count = f.Count(),
                          Elem = f.Key
                      })
                      .OrderByDescending(g => g.Count)
                      .First()
                      .Elem;
}

碰巧这个代码块抛出异常:

首先:序列不包含任何元素StackTrace:在System.Linq.Enumerable.First [TSource](IEnumerable1源),在IHMTools.Utilities.LinqExtensions.GetMostRepresentedElement [T,U](IEnumerable1 _Collection,Func2 _GetElem)

我怎么可能使这种方法安全?我是否必须对此方法进行修复,还是最好还是小心我发送给该方法的数据?

巴特瓦德

如果集合为空,First()将抛出您收到的异常。您可以改用FirstOrDefault()返回T空案例的默认值

由于您的LINQ涉及很多,您最好尽早退出以处理该案件,然后您也可以避免注释者指出的空案件。就像是if (!_Collection.Any()) return default(T);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么使用对象时通用方法中的动态参数会引发空引用异常?

来自分类Dev

方法调用可能会产生java NullpointerException

来自分类Dev

警告:方法调用 getAssets 可能会产生 nullpointerexception

来自分类Dev

避免调用可能会引发析构函数的函数

来自分类Dev

无法从通用方法中的构造方法中引发异常

来自分类Dev

如何处理异常以及为何有时可能会忽略它们

来自分类Dev

FOREIGN KEY可能会导致循环或多个级联路径异常

来自分类Dev

变量 'loginusername' 在被赋值之前使用。运行时可能会导致空引用异常

来自分类Dev

如何从具有通用返回类型的方法引发异常

来自分类Dev

如何记录在C#中引发通用异常的方法?

来自分类Dev

使用Hangfire:通用Enqueue <T>方法引发异常

来自分类Dev

如何记录在C#中引发通用异常的方法?

来自分类Dev

使用Hangfire:通用Enqueue <T>方法引发异常

来自分类Dev

当此方法引发异常时,会导致内存泄漏吗?

来自分类Dev

当此方法引发异常时,会导致内存泄漏吗?

来自分类Dev

从非虚拟方法更改为虚拟方法可能会导致意外行为

来自分类Dev

HttpWebRequest可能会减慢网站速度

来自分类Dev

木筏:提交的条目可能会丢失?

来自分类Dev

findViewById()可能会产生NullPointerException

来自分类Dev

Haskell String可能会列出

来自分类Dev

Python可能会舍入错误?

来自分类Dev

结构对齐可能会浪费内存?

来自分类Dev

AMD FX 8350可能会过热

来自分类Dev

http可能会损坏下载吗?

来自分类Dev

可能会损失精度误差

来自分类Dev

可能会产生BigInteger值冲突?

来自分类Dev

iOS可能会泄漏对象属性

来自分类Dev

遍历行可能会“丢失”的行

来自分类Dev

木筏:提交的条目可能会丢失?

Related 相关文章

  1. 1

    为什么使用对象时通用方法中的动态参数会引发空引用异常?

  2. 2

    方法调用可能会产生java NullpointerException

  3. 3

    警告:方法调用 getAssets 可能会产生 nullpointerexception

  4. 4

    避免调用可能会引发析构函数的函数

  5. 5

    无法从通用方法中的构造方法中引发异常

  6. 6

    如何处理异常以及为何有时可能会忽略它们

  7. 7

    FOREIGN KEY可能会导致循环或多个级联路径异常

  8. 8

    变量 'loginusername' 在被赋值之前使用。运行时可能会导致空引用异常

  9. 9

    如何从具有通用返回类型的方法引发异常

  10. 10

    如何记录在C#中引发通用异常的方法?

  11. 11

    使用Hangfire:通用Enqueue <T>方法引发异常

  12. 12

    如何记录在C#中引发通用异常的方法?

  13. 13

    使用Hangfire:通用Enqueue <T>方法引发异常

  14. 14

    当此方法引发异常时,会导致内存泄漏吗?

  15. 15

    当此方法引发异常时,会导致内存泄漏吗?

  16. 16

    从非虚拟方法更改为虚拟方法可能会导致意外行为

  17. 17

    HttpWebRequest可能会减慢网站速度

  18. 18

    木筏:提交的条目可能会丢失?

  19. 19

    findViewById()可能会产生NullPointerException

  20. 20

    Haskell String可能会列出

  21. 21

    Python可能会舍入错误?

  22. 22

    结构对齐可能会浪费内存?

  23. 23

    AMD FX 8350可能会过热

  24. 24

    http可能会损坏下载吗?

  25. 25

    可能会损失精度误差

  26. 26

    可能会产生BigInteger值冲突?

  27. 27

    iOS可能会泄漏对象属性

  28. 28

    遍历行可能会“丢失”的行

  29. 29

    木筏:提交的条目可能会丢失?

热门标签

归档