1
假設我有一個列表: -是否可以在兩個特定對象之間進行迭代?
var animals = new[] {"ant", "bear", "bee", ...... "monkey", ...... "zebra"};
什麼是蜂猴之間迭代的最簡單的方法?
假設我有一個列表: -是否可以在兩個特定對象之間進行迭代?
var animals = new[] {"ant", "bear", "bee", ...... "monkey", ...... "zebra"};
什麼是蜂猴之間迭代的最簡單的方法?
牙多少咬牙切齒後,揪頭髮和敲我的頭撞在牆上,我決定做它創造我自己的迭代器的簡單方法。
public static class LinqExtensions {
public static IEnumerable<T> InRange<T>(this IEnumerable<T> list, T first, T last) {
int i = 0;
while (list.Count() > i && ! list.ElementAt(i).Equals(first))
++i;
while (list.Count() > i && ! list.ElementAt(i).Equals(last))
yield return list.ElementAt(i);
if (list.Count() > i && list.ElementAt(i).Equals(last))
yield return list.ElementAt(i);
}
}
現在下面的工作完美: -
foreach (var x in animals.InRange("bee", "monkey")) {
....
}
注意,這將排除'monkey'。 –
是的,那是對的。任何想法如何改變這種行爲? – MarcinJuraszek
@MarcinJuraszek如果它們按字母順序排序... * TakeWhile(a => a <=「monkey」)* – McGarnagle