C# 索引为C的ForEach#
我需要从Linq中的C# 索引为C的ForEach#,c#,linq,foreach,C#,Linq,Foreach,我需要从Linq中的ForEach调用函数,并且需要从ForEach List<string> listString= new List<string>(); listString.ForEach((str, i) => { Func(str, i) , i++}); private ResponseBase Func(string s,int i) { List listString=new List(); ForEach((str,i)=>{Func(st
ForEach
调用函数,并且需要从ForEach
List<string> listString= new List<string>();
listString.ForEach((str, i) => { Func(str, i) , i++});
private ResponseBase Func(string s,int i)
{
List listString=new List();
ForEach((str,i)=>{Func(str,i),i++});
私有响应基函数(字符串s,int i)
{
您可以尝试以下方法:
var responses = listString.Select((value, index) => Func(value, index)).ToList();
listString
中每个项的上述操作将调用您定义的方法。所有调用的结果将存储在一个列表中,您可以使用相应的索引来访问它们。您可以尝试以下操作:
var responses = listString.Select((value, index) => Func(value, index)).ToList();
上面针对
listString
中每个项目的调用将调用您定义的方法。所有调用的结果将存储在一个列表中,您可以使用相应的索引来访问它们。我是LINQ的忠实粉丝。真的
但是在这种情况下,当您访问一个已经存在的列表时,我会选择一个老式的for循环
for(var i = 0; i < listString.Count; i++)
Func(listString[i], i);
for(var i=0;i
它不会更长,效率更高(这可能不是问题,但让我们记住这一点),它只是完成了工作。我是LINQ的忠实粉丝。真的
但是在这种情况下,当您访问一个已经存在的列表时,我会选择一个老式的for循环
for(var i = 0; i < listString.Count; i++)
Func(listString[i], i);
for(var i=0;i
它不仅更长,而且效率更高(这可能不是问题,但让我们记住这一点),它只是完成了工作。您可以引入一个变量,然后增加它:
List<String> values = new List<String>();
int indexTracker = 0;
values.ForEach(x=> { Func(x, indexTracker++); });
您可以引入一个变量,然后将其递增:
List<String> values = new List<String>();
int indexTracker = 0;
values.ForEach(x=> { Func(x, indexTracker++); });
ForEach不是LinQ的一部分,所以我将删除该标记。ForEach不是LinQ的一部分,所以我将删除该标记。