System.Collections.Generic.List <T>需要'1'类型参数

12 c# list

我有以下代码时出现此错误:

string[] colors = { "green", "brown", "blue", "red" };
var list = new List(colors);
IEnumerable query = list.Where(c => c.length == 3);
list.Remove("red");
Console.WriteLine(query.Count());
Run Code Online (Sandbox Code Playgroud)

而且,Count()似乎不再被允许了.它被弃用了吗?

Sel*_*enç 16

您正在尝试创建一个List<string>,您应该告诉编译器

var list = new List<string>(colors);
Run Code Online (Sandbox Code Playgroud)

没有List,有一个名为泛型的List<T>,需要一个类型参数.如果不指定类型参数,则无法创建通用列表.

你也试图调用Count扩展方法.该方法IEnumerable<T>作为第一个参数,而不是IEnumerable,这里是定义:

public static int Count<TSource>(this IEnumerable<TSource> source)
Run Code Online (Sandbox Code Playgroud)

所以你应该使用IEnumerable<string>访问该扩展方法:

IEnumerable<string> query = list.Where(c => c.Length == 3);
list.Remove("red");
Console.WriteLine(query.Count());
Run Code Online (Sandbox Code Playgroud)