Публикации по теме 'ienumerable'


Серия Как я познакомился со своим языком программирования: C# — IEnumerable, IEnumerator — Часть 1
Примечание. Я написал эту серию только для развлечения и для того, чтобы сделать несколько заметок о том, что я узнал на уроке. История может не быть «выдающейся» или «отличной». :D Итак, это примечание касается: IEnumerable, IEnumerator . IEnumerable IEnumerable — это в основном интерфейс. IEnumerable позволяет нам использовать ключ « foreach » для объекта класса, который устанавливает этот интерфейс. Обычно мы используем IEnumerable в списке. Если мы используем..

Как реализовать интерфейс IEnumerable?
Мы попытаемся ответить на поставленный выше вопрос с помощью ряда подвопросов. Надеюсь, к концу этой статьи мы будем лучше понимать интерфейс IEnumerable. Почему мы должны реализовать интерфейс IEnumerable? Обеспечить более простой способ перечисления пользовательских типов. Допустим, у нас есть собственный класс OddNumbers, единственной целью которого является инкапсуляция массива первых n нечетных чисел . Теперь, если бы нам нужно было перебрать массив нечетных чисел за..

Вопросы по теме 'ienumerable'

Как бы вы реализовали интерфейс IEnumerator?
У меня есть класс, который сопоставляет объекты с объектами, но, в отличие от словаря, он сопоставляет их в обоих направлениях. Сейчас я пытаюсь реализовать собственный интерфейс IEnumerator , который перебирает значения. public class...
17174 просмотров
schedule 25.03.2023

Нужно ли классу реализовывать IEnumerable для использования Foreach
Это на С#, у меня есть класс, который я использую из какой-то другой DLL. Он не реализует IEnumerable, но имеет 2 метода, которые возвращают IEnumerator. Есть ли способ использовать для них цикл foreach. Класс, который я использую, запечатан.
11113 просмотров
schedule 08.04.2023

Наследовать IEnumerable от последствий объекта
Я опубликовал ответ на этот вопрос , включая очень короткую тираду в конце о том, как String.Split() должен принимать IEnumerable‹string > вместо строки[]. Это заставило меня задуматься. Что, если базовый класс Object, от которого наследуется...
523 просмотров
schedule 05.04.2023

Перебирать общий список неизвестного типа во время выполнения в VB.Net
Кто-нибудь знает, как перебирать общий список, если тип этого списка неизвестен до времени выполнения? Например, предположим, что obj1 передается в функцию как Object : Dim t As Type = obj1.GetType If t.IsGenericType Then Dim...
8623 просмотров
schedule 04.03.2024

Как сделать IEnumerable‹T› только для чтения?
Почему списки list1Instance и p в методе Main приведенного ниже кода указывают на одну и ту же коллекцию? class Person { public string FirstName = string.Empty; public string LastName = string.Empty; public...
15398 просмотров
schedule 31.07.2022

Добавленная стоимость ключевого слова доходности?
все еще пытаюсь найти, где я мог бы использовать ключевое слово "yield" в реальной ситуации. Я вижу эту ветку на эту тему Для чего используется ключевое слово yield в C #? но в принятом ответе у них есть это как пример, когда кто-то...
1988 просмотров
schedule 12.11.2022

Почему операторы foreach принимают объекты, реализующие шаблон «Коллекция», а не принимают только объекты, реализующие IEnumerable?
Многие люди спрашивают меня, почему, и у меня нет для них хорошего ответа. Очевидно, есть веская причина. Кто-нибудь это знает? Я искал здесь и нашел этот вопрос . Он объясняет, как это работает, но не почему.
497 просмотров
schedule 10.02.2024

В чем реальное преимущество возврата ICollection ‹T› вместо List ‹T›?
Я прочитал пару сообщений в блоге, в которых упоминалось, что для общедоступных API мы всегда должны возвращать ICollection (или IEnumerable) вместо List. В чем реальное преимущество возврата ICollection вместо списка? Спасибо! Дубликат: В чем...
12213 просмотров
schedule 24.10.2022

Когда мне следует использовать IEnumerator для зацикливания в С#?
Мне было интересно, есть ли случаи, когда выгодно использовать IEnumerator вместо цикла foreach для перебора коллекции? Например, есть ли время, когда было бы лучше использовать один из следующих примеров кода вместо другого?...
36942 просмотров
schedule 13.05.2022

IEnumerable.GetEnumerator() возвращает IEnumVariant в Delphi 6
Я использую сборку .Net2.0 в Delphi 6 через COM. Один из методов в одном из интерфейсов возвращает IEnumerable. Пока я импортирую mscorlib.tlb, расположенный в "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" , я могу получить доступ к...
1630 просмотров
schedule 22.06.2022

C#: реализация SkipLast
Мне нужен был метод, чтобы дать мне все, кроме последнего элемента в последовательности. Это моя текущая реализация: public static IEnumerable<T> SkipLast<T>(this IEnumerable<T> source) { using...
1541 просмотров

Аналог String.Join (string, string []) для IEnumerable ‹T›
класс String содержит очень полезный метод - String.Join(string, string[]) . Он создает строку из массива, отделяя каждый элемент массива заданным символом. Но в целом - он не добавляет разделитель после последнего элемента! Я использую его...
5481 просмотров
schedule 16.02.2023

Как предотвратить переполнение памяти при использовании IEnumerable ‹T› и Linq-To-Sql?
Этот вопрос связан с моим предыдущим вопросом Это мой текущий код IEnumerable<Shape> Get() { while(//get implementation yield return new Shape(//... } void Insert() { var actual = Get(); using (var db =...
607 просмотров
schedule 12.06.2023

Должен ли я всегда возвращать IEnumerable ‹T› вместо IList ‹T›?
Когда я пишу свой DAL или другой код, который возвращает набор элементов, должен ли я всегда делать оператор return: public IEnumerable<FooBar> GetRecentItems() or public IList<FooBar> GetRecentItems() В настоящее время...
44353 просмотров
schedule 19.06.2022

Преобразование IEnumerable в DataTable
Есть ли хороший способ преобразовать IEnumerable в DataTable? Я мог бы использовать отражение для получения свойств и значений, но это кажется немного неэффективным, есть ли что-то встроенное? (я знаю такие примеры, как:...
118515 просмотров
schedule 01.07.2023

C # IEnumerable ‹Object› в строку
Для целей регистрации я хотел бы вызвать метод .ToString() для каждого объекта в массиве object []. Как я могу сделать это самым простым способом? Скажем, у меня есть: myArray = new Object[]{"astring",1, Customer} Log(????); Как...
16848 просмотров
schedule 26.03.2023

Выиграют ли C# различия между типами перечислителей, такими как итераторы C++?
Я думал о методе IEnumerator.Reset() . Я читал в документации MSDN, что это только для COM-взаимодействия. Как программист на C++, мне кажется, что IEnumerator , поддерживающий Reset , я бы назвал прямой итератор , тогда как IEnumerator ,...
523 просмотров
schedule 05.11.2022

Мне нужно перебрать и посчитать. Что является самым быстрым или предпочтительным: ToArray () или ToList ()?
Возможный дубликат: Что лучше вызывать ToList () или ToArray () в запросах LINQ? У меня такой код: void Foobar(string[] arr, Dictionary<string, string[]>) { var t = arr.Intersect(dic.Keys).ToList(); // .or ToArray() ?...
11388 просмотров
schedule 16.05.2022

Можно ли клонировать экземпляр IEnumerable‹T›, сохранив копию состояния итерации?
Я хотел бы создать копию IEnumerator<T> , чтобы я мог перезапустить процесс перечисления из определенного места в коллекции. Ясно, что для коллекций, реализующих IList , делать это бесполезно, поскольку мы можем запомнить интересующий индекс....
12807 просмотров
schedule 15.07.2022

C # - Yield дает непригодный для использования тип
У меня есть класс и набор IEnumerables, которые используют этот класс, чтобы дать мне список в списке. (Подробности см. в ответе на этот вопрос .) Вот код: public IEnumerable<IEnumerable<WorkItemColumn>>...
572 просмотров
schedule 13.12.2022