我有两个字符串列表。我的经理的要求是使用LINQ将列表和输出连接成一个字符串。
List<string> upper = new List<string> { "A", "B", "C" };
List<string> lower = new List<string> { "a", "b", "c" };
输出应如下所示: // string output =“A:a,B:b,C:c”
为了实现这一点,我需要使用LINQ Aggregate方法或其他可用的扩展方法。请帮忙
答案 0 :(得分:3)
您正在寻找方法Zip
,并可能与string.Join
Console.WriteLine(string.Join(",", upper.Zip(lower, (u, l) => u + ":" + l)));
输出:A:a,B:b,C:c
答案 1 :(得分:1)
您需要Zip
方法而不是Aggregate
:
如果您希望结果为List
String
:
List<string> result = upper.Zip(lower, (first, second) => first + ":" + second).ToList();
如果您希望将结果作为字符串,则可以使用String.Join
方法,如下所示:
string output = string.Join(",", result);
或Aggregate
方法正如您所希望的那样:
string output = result.Aggregate((f, s) => f + "," + s);
答案 2 :(得分:0)
def prod(x):
""" Recursive approach with behavior of np.prod over axis 0 """
if len(x) is 1:
return x
for i, a_ in enumerate(x.pop()):
x[0][i] *= a_
return prod(x)
现在将其转换为单个字符串:
var results = upper.Zip(lower, (up, low) => $"{up}:{low}");