的陣列我有這樣的事情:使用LINQ總結返回值
long[] f = new long[4]{1,10,100,1000};
我要除以100 1000,100 10和10由1
有沒有辦法返回結果與結果的陣列例如/ 10,10,10
UPDATE:這似乎混淆幾個所以這裏是另一個例子
長[] F =新長[ 3] {1,2,6};
我想用2和2 1在一個陣列的結果分爲6
的陣列我有這樣的事情:使用LINQ總結返回值
long[] f = new long[4]{1,10,100,1000};
我要除以100 1000,100 10和10由1
有沒有辦法返回結果與結果的陣列例如/ 10,10,10
UPDATE:這似乎混淆幾個所以這裏是另一個例子
長[] F =新長[ 3] {1,2,6};
我想用2和2 1在一個陣列的結果分爲6
不使用LINQ簡單的解決方案:
IEnumerable<long> GetResults(long[] input)
{
for (int i = input.Length -1; i >= 1; --i)
yield return input[i]/input[i - 1];
}
您可以在返回值艱難使用Linq和它的作品在.NET 3.5 :)
我不認爲總在這種情況下,會幫...郵編會更適合:
long[] f = new long[4]{1,10,100,1000};
long[] result = f.Skip(1).Zip(f, (a, b) => a/b);
編輯:如果你在.NET 3.5中,你可以隨便寫一個Zip
擴展方法自己:
public static IEnumerable<TResult> Zip<TFirst, TSecond, TResult>(this IEnumerable<TFirst> first, IEnumerable<TSecond> second, Func<TFirst, TSecond, TResult> selector)
{
if (first == null)
throw new ArgumentNullException("first");
if (second == null)
throw new ArgumentNullException("second");
if (selector == null)
throw new ArgumentNullException("selector");
return first.ZipIterator(second, selector);
}
private static IEnumerable<TResult> ZipIterator<TFirst, TSecond, TResult>(this IEnumerable<TFirst> first, IEnumerable<TSecond> second, Func<TFirst, TSecond, TResult> selector)
{
using (var enum1 = first.GetEnumerator())
using (var enum2 = second.GetEnumerator())
{
while (enum1.MoveNext() && enum2.MoveNext())
{
yield return selector(enum1.Current, enum2.Current);
}
}
}
我只有.Net 3.5 – Jon 2010-09-21 09:05:30
查看我的更新回答 – 2010-09-21 09:22:27
如果我理解正確的話,你可能不希望在這裏使用聚合而是Pairwise:
long[] result = f.Pairwise((x, y) => y/x).ToArray();
下面是一個例子實現成對的:
public static IEnumerable<TResult> Pairwise<TSource, TResult>(
this IEnumerable<TSource> source,
Func<TSource, TSource, TResult> resultSelector)
{
TSource previous = default(TSource);
using (var it = source.GetEnumerator())
{
if (it.MoveNext())
previous = it.Current;
while (it.MoveNext())
yield return resultSelector(previous, previous = it.Current);
}
}
如果你想要的結果相反,然後添加一個電話Reverse
。
問題的發言不明確我。你想把每個元素分成相應的十個冪數嗎? (10^i)中。除以前的元素?在這種情況下,你想在零分區情況下發生什麼? – 2010-09-21 08:52:31