.net 为什么IEnumerable没有Sum()扩展<;uint>;

.net 为什么IEnumerable没有Sum()扩展<;uint>;,.net,.net,似乎没有为IEnumerable(以及其他无符号整数)定义Sum 我想知道: 我是否犯了根本错误/误解了形势 哪些设计决策可能导致遗漏IEnumerable.Sum() 这可能只是一个疏忽。我想起了,它在列表中可用,但不可数。我已经在至少3个项目中编写了.ForEach作为IEnumerable的扩展方法 只是猜测:因为uint不符合CLS。不确定这是否会影响他们不支持它的决定。你可以自己做一个……所有功能都从-100开始:@Trillian极好的点,但是为什么int功能克服了-100,而u

似乎没有为
IEnumerable
(以及其他无符号整数)定义Sum

我想知道:

  • 我是否犯了根本错误/误解了形势
  • 哪些设计决策可能导致遗漏
    IEnumerable.Sum()

这可能只是一个疏忽。我想起了,它在列表中可用,但不可数。我已经在至少3个项目中编写了.ForEach作为IEnumerable的扩展方法

只是猜测:因为uint不符合CLS。不确定这是否会影响他们不支持它的决定。

你可以自己做一个……所有功能都从-100开始:@Trillian极好的点,但是为什么
int
功能克服了-100,而
uint
没有?……除了
ForEach
不是一个疏忽之外。它故意不包括在
IEnumerable
扩展方法中,因为这些方法都是功能性的,而
ForEach
基本上是不起作用的。也就是说,它应该是IList中的一种扩展方法;看(和投票!)是的,那就够了。看见
var s = new int[] { 1, 2, 3 };
s.Sum(); //works fine

var us = new uint[] { 1, 2, 3 };
us.Sum(); //missing method