C# 相当于 Julia 的 map!() 方法

GNU*_*下教會 5 c# equivalent julia

我试图找到 C# 的 Juliamap!()方法的等价物,它是void返回类型并接受一个函数、一个目标和一个函数作用的集合。

我能找到的最好的东西是 C# 的Enumerable.Select(),它将函数作为第三个参数,将集合作为第一个参数。但是,它返回一个新集合,而不是修改“目标”中的集合。这更像朱莉娅的map()

Sea*_*ean 2

没有像这样的标准,但您可以轻松添加自己的扩展方法来IEnumerable添加此功能。例如:

public static void JuliaMap<TFrom, TTo>
(
    this IEnumerable<TFrom> source, 
    IList<TTo> target, 
    Func<TFrom, TTo> selector
)
{
    var next = 0;
    foreach(var value in source)
    {
        var convertedValue = selector(value);
        target[next] = convertedValue;
        next++;
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以怎么说:

var numbers = new[]{1, 2, 3};
var target = new string[3];

numbers.JuliaMap(target, i => (i * 2).ToString());
Run Code Online (Sandbox Code Playgroud)

注意:我遗漏了任何错误处理。例如,您需要确保目标列表足够长以容纳插入的值。