为什么C#列表由signed int索引

nad*_*ada 7 c# list

我是C#的新手,我有一些C++和C的背景,这就是为什么我没有理解,为什么Lists <>被索引int而不是像一些无符号整数uint.这是非常不合逻辑的,因为不能有一个元素,即-1左右.

当以下代码无法运行时,会出现这种情况:

List<string> some_list = new List<string>();
/* Insert some strings */

for (uint i = 0; i < some_list.Count; ++i) {
    string element = some_lists[i]; // Error: No possible conversion from uint to int
    /* do something with string_element */
}
Run Code Online (Sandbox Code Playgroud)

在C++中,这会给我一个编译器警告,但仍然编译正常.那么C#在列表中使用有符号整数作为索引的原因是什么?这对我来说看起来不是很尖锐,但也许有人可以启发我.