我试图找到一个优雅的方式来写一个可能被称为MergeWithRatio或ZipWithRatio的扩展方法。帮助实现一个ZipWithRatio扩展方法
我希望它有这个签名..
public static IEnumerable<T> MergeWithRatio<T>(this IEnumerable<T> source, IEnumerable<T> mergeSequence, int ratio)
{
..
}
实例第一。
var source = new[]{1,2,3,4,5,6,7,8,9};
var mergeSeq = new[]{100,200};
var result = source.MergeWithRatio(mergeSeq, 3).ToArray();
结果现在包含[1,2,100,3,4,200,5,6,100中,7,8,200 9]
总结: 的MERGESEQ环绕时/如果完成,并且当“源”为空时,收益停止。
如果可能的话,我会优先考虑解决方案是懒惰的,但它不是一个要求。
任何想法或指针?
您尚未指定结果是否可以以“mergeSequence”中的项目结尾。 – 2011-03-21 15:42:11