我有两个列表,列表A,列表B都具有相同的值。我喜欢将这些值作为参数传递并选择返回值。所以代码
for(int i=0;i<A.count;i++)
{
list<int> temp=new list<int>();
temp.add(methodA(A[i],B[i]);
}
我怎样才能使用linq.how来做这个.net framework 3.5?
答案 0 :(得分:2)
您使用的是.NET 4吗?如果是这样,Zip
方法就是您想要的:
List<int> temp = A.Zip(B, (a, b) => SomeMethod(a, b)).ToList();
或使用方法组转换:
List<int> temp = A.Zip(B, SomeMethod).ToList();
如果您不使用.NET 4,MoreLINQ也可以简单地实现Zip
。
答案 1 :(得分:0)
试试这个
List<int> A = new List<int>() { 1, 2, 3, 4 };
List<int> B = new List<int>() { 11, 22, 33, 44 };
List<int> temp = new List<int>();
Enumerable.Range(0, A.Count)
.ToList()
.ForEach(i => temp.Add(methodA(A[i], B[i])));
假设我在
下修改现有代码List<int> A = new List<int>(){1,2,3,4};
List<int> B = new List<int>(){11,22,33,44};
List<int> temp = new List<int>();
for(int i=0;i<A.Count;i++) temp.Add(methodA(A[i],B[i]));
//Method for some operation
private int methodA(int val1, int val2)
{
return val1 + val2;
}
我将输出为12,24,36,48。
运行我提供的那个将获得相同的答案。
希望这有帮助。
它在3.5框架中。