gpt4 book ai didi

c# - 在C#中添加两个不同长度的列表

转载 作者:IT王子 更新时间:2023-10-29 04:52:03 25 4
gpt4 key购买 nike

List<double> a = new List<double>{1,2,3};
List<double> b = new List<double>{1,2,3,4,5};

a + b 应该给我 {2,4,6,4,5}

显然我可以写一个循环,但是有更好的方法吗?使用 LINQ?

最佳答案

您可以很容易地使用修改后的“zip”操作,但没有内置任何东西。像这样:

    static void Main() {
var a = new List<int> { 1, 2, 3 };
var b = new List<int> { 1, 2, 3, 4, 5 };
foreach (var c in a.Merge(b, (x, y) => x + y)) {
Console.WriteLine(c);
}
}
static IEnumerable<T> Merge<T>(this IEnumerable<T> first,
IEnumerable<T> second, Func<T, T, T> operation) {
using (var iter1 = first.GetEnumerator())
using (var iter2 = second.GetEnumerator()) {
while (iter1.MoveNext()) {
if (iter2.MoveNext()) {
yield return operation(iter1.Current, iter2.Current);
} else {
yield return iter1.Current;
}
}
while (iter2.MoveNext()) {
yield return iter2.Current;
}
}
}

关于c# - 在C#中添加两个不同长度的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1190657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com