在C#中,如何调用返回列表的函数?
在C#中,如何调用返回列表的函数在C#中,如何调用返回列表的函数?,c#,list,function,methods,C#,List,Function,Methods,在C#中,如何调用返回列表的函数 static void Main(string[] args) { List<string> range = new List<string>(); range.ForEach(item => item.WildcardFiles()); //this is not working } List<string>
static void Main(string[] args)
{
List<string> range = new List<string>();
range.ForEach(item => item.WildcardFiles()); //this is not working
}
List<string> WildcardFiles(string first)
{
List<string> listRange = new List<string>();
listRange.Add("q");
listRange.Add("s");
return listRange;
}
static void Main(字符串[]args)
{
列表范围=新列表();
range.ForEach(item=>item.WildcardFiles());//这不起作用
}
列出通配符文件(首先是字符串)
{
List listRange=新列表();
添加(“q”);
列表范围。添加(“s”);
返回列表范围;
}
您的代码有很多问题:
- 您正在创建一个空列表,然后对其调用
。那没什么用ForEach
- 您试图对字符串调用
,而该字符串不是字符串的方法通配符文件
- 您试图调用
,无论您的声明类型是什么,它都是一个实例方法,但没有该类型的任何实例WildcardFiles
- 您正在尝试调用
,而不传入通配符文件
参数的参数第一个
- 您正在忽略调用
通配符文件的返回值
忽略其参数WildcardFiles
static void Main(string[] args)
{
List<string> range = WildcardFiles();
foreach (string item in range)
{
// Do something with item
}
}
static List<string> WildcardFiles()
{
List<string> listRange = new List<string>();
listRange.Add("q");
listRange.Add("s");
return listRange;
}
static void Main(字符串[]args)
{
列表范围=通配符文件();
foreach(范围内的字符串项)
{
//对这个项目做些什么
}
}
静态列表通配符文件()
{
List listRange=新列表();
添加(“q”);
列表范围。添加(“s”);
返回列表范围;
}
我不知道你到底想要什么,但目前你应该做:
range.ForEach(item => WildcardFiles(item));
并使您的方法静态工作。不清楚您要做什么。只调用一个方法是可以的,但是您想对结果做什么呢?您当前正在调用Main中的空列表中的
ForEach
。@Kyle Trauberman为什么要调用实例?正如我写的,我们应该有一个静态的方法,在投票前先测试我说的话,然后告诉我错在哪里。还有比这更多的东西。大概有人想对WildcardFiles()
返回的列表做些什么。我错过了你的最后一句话。很抱歉我删除了否决票。@David Heffernan,我真的不知道OP想要什么,我只是通过OPs代码处理标题,这可能很疯狂,但首先正如Jon评论的那样,应该清除OP想要什么,然后我们可以重构它。@Saeed Amiri 100%同意你的观点。大卫,大概是你,但这不是问题。在我看来,他想做一件SelectMany
类型的事情。不过,您的想法看起来也有可能。编译器不接受这一行:List range=WildcardFiles()@CN:应该——我刚刚在我的机器上编译过。但是,对于System.Collections.Generic
,您需要一个using
指令。您收到的错误消息是什么?@Jon Skeet-错误消息是:“非静态字段、方法或属性‘MethodReturnList.Program.WildcardFiles()’需要对象引用”。我当前没有指令System.Collection。Generic@JonSkeet:是的,在我将通配符文件更改为静态文件后,它起了作用。非常感谢。