C# 使用泛型类型';System.Collections.Generic.List<;T>';需要';1';类型参数

C# 使用泛型类型';System.Collections.Generic.List<;T>';需要';1';类型参数,c#,generics,namespaces,C#,Generics,Namespaces,我正在尝试创建一个程序,该程序将创建一个向量,生成100个随机数(0-99),然后要求用户输入他们想要的数字是从高到低还是从低到高排序 这是我到目前为止一直试图让向量工作的代码 using System; using System.Collections.Generic; using System.Collections.Generic.List; //this is where the error comes. using System.Linq; using System.Text; na

我正在尝试创建一个程序,该程序将创建一个向量,生成100个随机数(0-99),然后要求用户输入他们想要的数字是从高到低还是从低到高排序

这是我到目前为止一直试图让向量工作的代码

using System;
using System.Collections.Generic;
using System.Collections.Generic.List; //this is where the error comes.
using System.Linq;
using System.Text;

namespace System.Collections.Generic
{
    class List<T>
    {
        static void Main(string[] args)
        {
            List<int> vectorList = new List<int>();
            vectorList.Capacity(100);
            int i = 100;
            for (int x = 0; x <= 100; x++)
            {
                Random rand = new Random();
                i = rand.Next(0, 100);
                vectorList.Add(i);
                Console.WriteLine(i);
            }
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Collections.Generic.List//这就是错误的来源。
使用System.Linq;
使用系统文本;
命名空间System.Collections.Generic
{
班级名单
{
静态void Main(字符串[]参数)
{
列表向量列表=新列表();
矢量表容量(100);
int i=100;

对于(int x=0;x删除
using
line;
List
是一个类,而不是名称空间,因此您不必“使用”它

您的
Main()
方法也应该属于它自己的类;C不允许重新定义现有类来添加
Main()
方法

此外,我相信这会解决您遇到的问题,我认为这会让您首先使用
行将该问题放在那里,值得注意。

这是一个次要问题(BoltClock有它的权利),但请更改此项:

List<int> vectorList = new List<int>();
vectorList.Capacity(100);
List vectorList=new List();
矢量表容量(100);
为此:

List<int> vectorList = new List<int>(100);
List vectorList=新列表(100);
另外,从类名中删除

删除:

using System.Collections.Generic.List;

列表包含在您已经“使用”的通用名称空间中。

您只需要导入名称空间。因此请删除有问题的行


除此之外,您已经声明您的程序类是泛型的
List
。您不需要这样做,您的入口点应该在一个普通的静态类中。

您在这里做的许多事情都不是一个好主意,并且对您将要遇到的一些错误负有直接责任。

首先,在C#中,
using
指令用于标识您将依赖的整个命名空间,以及该命名空间中公开的所有类型

using System.Collections.Generic.List
不引用名称空间,而是引用类型(
List
)-不合适

接下来,您将尝试创建一个泛型类
List
作为程序的主类…并且在
System.Collections.generic
命名空间中创建一个泛型类。这将与现有的.NET
List
类冲突,因此您也将从中获得错误

这里您真正想要做的是创建一个与您正在编写的程序关联(或描述)的命名空间。不要尝试为此目的重复使用现有的.NET framework名称。也不要将类命名为
List


最后,您的类不是真正的泛型类…类型参数
T
在程序代码中没有任何用途。并且您的类不是列表的实现…它是一个列表处理器(或类似的东西)。在命名程序中的类或接口时,应小心,以便它们与所命名的对象有很强的关系。这也是一个好主意(如果可能的话)避免创建与.NET framework中常用类已经使用的名称冲突的名称,因为这可能会导致代码中的歧义和混乱。

为什么要重新定义
System.Collections.Generic.List
?您似乎对C#程序的不同元素有一些困惑。我已尝试在下面是我的答案;但是,我建议您花一些时间阅读C#语言中的不同结构,以便能够有效和适当地使用它们。当我删除该行时,它又给了我两个错误。“System.Collections.Generic.List”不包含“Capacity”的定义,也不包含扩展方法“Capacity”ac无法找到类型为“System.Collections.Generic.List”的第一个参数(是否缺少using指令或程序集引用?)除了Add之外,还有一个类似于Add的错误。@Cistoran:Joel Coehoorn在他的答案中有解决方案。恰好是我的答案下的两个错误OP列表的来源。这些错误可以解释为什么他首先使用了
using
指令。+1个很好的建议!我真正说的是重新声明existing名称空间/类是非法的…是的,我改变了一些东西,以反映我在MSDN上读到的东西,我现在意识到这与我的问题无关。这是一个合理的建议,但非常感谢。