gpt4 book ai didi

c# - 3 个数组到 1 个 IEnumerable

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:52 25 4
gpt4 key购买 nike

假设我有这个:

 public class test
{
int foo;
int foo2;
string foo3;
}

int[] foo = new int[] { 1, 2, 3 };
int[] foo2 = new int[] { 4, 5, 6 };
string[] foo3 = new string[] { "a", "b", "c" };

如何将这 3 个数组转换为测试的 IEnumberable?

TIA

/拉瑟

最佳答案

您可以使用 .NET 4.0 Enumerable.Zip 扩展方法:

foo.Zip(foo2, (first, second) => new { first, second })
.Zip(foo3, (left, right) => new test
{
foo = left.first,
foo2 = left.second,
foo3 = right
});

或者写一个方法来做这个:

public static IEnumerable<test> FooCombiner(int[] foo,
int[] foo2, string[] foo3)
{
for (int index = 0; index < foo.Length; index++)
{
yield return new test
{
foo = foo[index],
foo2 = foo2[index],
foo3 = foo3[index]
};
}
}

最后一个例子是最易读的 IMO。

关于c# - 3 个数组到 1 个 IEnumerable<test>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5548660/

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