1
голосов
1ответов
1291 просмотров

В чем разница (если есть) между «yield» и «yield return» в C #?

Я традиционно использовал yield в C # без возврата, например: IEnumerable<T> Foobar() { foreach( var foo in _stuff ) { yield foo; } } Но в других примерах я видел, что это написано как «yield return foo;», см .: http://msdn.microsoft.com/en-us/library/9k7k7cf0%28VS.80%2...

50
голосов
2ответов
15295 просмотров

yield return statement inside a using() { } block Disposes before executing

I've written my own custom data layer to persist to a specific file and I've abstracted it with a custom DataContext pattern. This is all based on the .NET 2.0 Framework (given constraints for the target server), so even though some of it might look like LINQ-to-SQL, its not! I've just implement...

27
голосов
6ответов
9313 просмотров

Is yield return in C# thread-safe?

I have the following piece of code: private Dictionary<object, object> items = new Dictionary<object, object>; public IEnumerable<object> Keys { get { foreach (object key in items.Keys) { yield return key; } } } Is this thread-s...

165
голосов
6ответов
37264 просмотров

Return all enumerables with yield return at once; without looping through

I have the following function to get validation errors for a card. My question relates to dealing with GetErrors. Both methods have the same return type IEnumerable<ErrorInfo>. private static IEnumerable<ErrorInfo> GetErrors(Card card) { var errors = GetMoreErrors(card); fo...

87
голосов
5ответов
21669 просмотров

In C#, why can't an anonymous method contain a yield statement?

I thought it would be nice to do something like this (with the lambda doing a yield return): public IList<T> Find<T>(Expression<Func<T, bool>> expression) where T : class, new() { IList<T> list = GetList<T>(); var fun = expression.Compile(); var i...

2
голосов
3ответов
976 просмотров

How does the NerdDinner example's Dinner.GetRuleViolations function return a list?

From what I've read, yield return <value> jumps out of the function the moment the line is executed. However, Scott Guthrie's text indicates that var errors = dinner.GetRuleViolations(); successfully pulls out a list of all the rule violations even though GetRuleViolations is a long ...

79
голосов
10ответов
18614 просмотров

Какова цель / преимущество использования итераторов yield return в C #?

Все примеры использования yield return x; внутри метода C #, которые я видел, могут быть выполнены таким же образом, просто возвращая весь список. В таких случаях есть ли какие-то преимущества или преимущества в использовании синтаксиса yield return по сравнению с возвратом списка? Кроме того...

9
голосов
6ответов
14265 просмотров

Могу ли я реализовать yield return для функций IEnumerable в VB.NET?

Возможный дубликат: Доходность в VB.NET В C # при написании функции, возвращающей IEnumerble<>, вы можете использовать yield return для возврата одного элемента перечисления и yield break; для обозначения отсутствия оставшихся элементов. Каков синтаксис VB.NET для того же? ...

913
голосов
16ответов
255819 просмотров

Правильное использование «доходности»

Ключевое слово yield является одним из те ключевые слова на C #, которые продолжают меня озадачивать, и я никогда не был уверен, что использую его правильно. Какой из следующих двух фрагментов кода является предпочтительным и почему? Версия 1: Использование доходности public stati...