C# System.Collections.Generic.List<;T>;需要';1';类型参数
我有以下代码的错误:C# System.Collections.Generic.List<;T>;需要';1';类型参数,c#,list,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()); 此外,Count()似乎不再被允许。它是否已弃用?您正在尝试创建一个列表,您应该告诉编译器
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());
此外,
Count()
似乎不再被允许。它是否已弃用?您正在尝试创建一个列表,您应该告诉编译器
var list = new List<string>(colors);
因此,您应该使用IEnumerable
访问该扩展方法:
IEnumerable<string> query = list.Where(c => c.Length == 3);
list.Remove("red");
Console.WriteLine(query.Count());
IEnumerable query=list.Where(c=>c.Length==3);
列表。删除(“红色”);
Console.WriteLine(query.Count());
您使用的是System.Collections.Generic.List
,因此它是一个Generic列表,因此您必须提供Generic参数T
。在您的示例中,您需要一个列表
。因此,请尝试:
List<string> list = new List<string>(colors);
List List=新列表(颜色);
事实上,您的示例中根本不需要列表
,您可以大大简化一切:
var count = new [] { "green", "brown", "blue", "red" }
.Where(c => c.length == 3)
.Where(c => c != "red")
.Count();
Console.WriteLine(count);
试试这个:
static void Main(string[] args)
{
string[] colors = { "green", "brown", "blue", "red" };
var list = new List<string>(colors); // <string>
IEnumerable query = list.Where(c => c.Length == 3); // "Length", not "length"
list.Remove("red");
Console.WriteLine(query.Count());
}
static void Main(字符串[]args)
{
字符串[]颜色={“绿色”、“棕色”、“蓝色”、“红色”};
变量列表=新列表(颜色);//
IEnumerable query=list.Where(c=>c.Length==3);/“Length”,而不是“Length”
列表。删除(“红色”);
Console.WriteLine(query.Count());
}
@DGibbs您是否忘记了“System.Linq.LinqExtention.Count(this IEnumerable)”???在投票否决某人之前,请确保101%的事情!我百分之百肯定。您已经定义了一个非泛型的IEnumerable
。。。如果要访问Count(),我怀疑您需要IEnumerable
方法,或者,您可以调用Cast
提供类型,例如list.Cast().Count()
。回答问题之前,请确保您的代码是正确的。@DGibbs我已经编写并在Visual Studio上成功测试了它。直到那时,我才公布了答案。你在逻辑上是对的。但事实上,该代码在VS中运行良好。因此,请您纠正我的错误在哪里?我已经在Visual Studio上编写并成功测试了该代码。
我严重怀疑这一点。了解差异:与可能的颜色重复。ToList()不适合您吗?
static void Main(string[] args)
{
string[] colors = { "green", "brown", "blue", "red" };
var list = new List<string>(colors); // <string>
IEnumerable query = list.Where(c => c.Length == 3); // "Length", not "length"
list.Remove("red");
Console.WriteLine(query.Count());
}