6
ben ders dışı derleme değil böyle bir şey (bunları yeniden yazmak istiyorumBu foreach verimini linq verimine yeniden yazınız.
public static IEnumerable<Color> GetThemColors(){
var ids = GetThePrimaryIds();
foreach (int id in ids){
yield return GetColorById(id);
}
ids = GetTheOtherIds();
foreach (int id in ids){
yield return GetOtherColorsById(id);
}
}
(sınırlı soru kapsamını tutmak için aşağı daralmış bağlamı) Aşağıdaki kodu var ki
public static IEnumerable<Color> GetThemColors(){
GetThePrimaryIds().Select(id=>yield return GetColorById(id));
GetTheOtherIds().Select(id=>yield return GetOtherColorsById(id));
}
.
ilk snippet'te benim tembel yükleme özelliklerini kaybetmeden linq yapmak nasıl bilmiyorum, hangi veren iki foreach enumerator'ler olduğunu olmanın kilit noktası
Teşekkürler, uykunun tembel olduğunun farkında olmadı –
Enumerable ile ilgili tüm yöntemleri bildiğim kadarıyla IEnumerable'ın geri dönüşü tembeldir. – Joren
Doğru, ama bir sebepten dolayı Concat'ın bir IList döndüreceğini varsayalım. –