powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Доступ к элементу произвольной коллекции по индексу
13 сообщений из 13, страница 1 из 1
Доступ к элементу произвольной коллекции по индексу
    #38259213
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требуется ф-ция вида
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
Object GetObjectByIndex (int index, Object someCollection)
{
     if (someCollection is ....)//???
     {
            .....;///???
            return profit_;
     }
     return null;
}


Т.е. хотелось бы привести входной объект к какой-то базовой коллекции или интерфейсу (не пойму, к чему), получить доступ к нужному элементу и вернуть его. Можно ли это сделать и как?
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38259238
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, т.е. можно привести к IEnumerable, забацать цикл foreach, пока не достигну нужного индекса. и вернуть текущий элемент, но как-то это не очень.
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38259240
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisТребуется ф-ция вида
зачем? в Linq вроде как это есть
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38259261
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

можете написать, как?
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38259265
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris,

ElementAt
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38259514
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае произвольной коллекции - откуда уверенность, что она вообще оперирует с таким понятием, как индекс? Например, есть такая штука как HashSet<T> (реализует ICollection<T> и IEnumerable<T>, так что вполне себе коллекция) - у него понятие индекса элемента отсутствует в принципе. У Dictionary<T, T1>, кстати, тоже.
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38259558
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уверенности, понятное дело, нету. Используются коллекции разных типов, вот и задумался, как предоставить доступ к элементу по какому-то номеру, не взирая на то, какой тип у коллекции
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38259623
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchPallaris,

ElementAt +1

Внутри уже реализован доступ по индексу илиPallarisможно привести к IEnumerable, забацать цикл foreach while , пока не достигну нужного индекса
Смотрим код:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
public static TSource ElementAt<TSource>(this IEnumerable<TSource> source, int index)
{
    if (source == null)
    {
        throw Error.ArgumentNull("source");
    }

    IList<TSource> list = source as IList<TSource>;

    if (list != null)
    {
        return list[index];
    }

    if (index < 0)
    {
        throw Error.ArgumentOutOfRange("index");
    }

    IEnumerator<TSource> enumerator = source.GetEnumerator();

    using (enumerator)
    {
        while (enumerator.MoveNext())
        {
            if (index == 0)
            {
                return enumerator.Current;
            }

            index--;
        }

        throw Error.ArgumentOutOfRange("index");
    }
}
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38259627
WPF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisУверенности, понятное дело, нету. Используются коллекции разных типов, вот и задумался, как предоставить доступ к элементу по какому-то номеру, не взирая на то, какой тип у коллекции В этой связи тип коллекции все равно приходится выбирать, шарп глубоко типизированный язык.
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38259740
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обобщить коллекции через IList или IList<T> ?
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38259858
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КОбобщить коллекции через IList или IList<T> ?
Упомянутые HashSet и Dictionary не реализуют IList/IList<T>.
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38260016
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныАлексей КОбобщить коллекции через IList или IList<T> ?
Упомянутые HashSet и Dictionary не реализуют IList/IList<T>.
Код: c#
1.
2.
[Serializable, DebuggerTypeProxy(typeof(Mscorlib_DictionaryDebugView<,>)), DebuggerDisplay("Count = {Count}"), ComVisible(false)]
public class Dictionary<TKey, TValue> : IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback
...
Рейтинг: 0 / 0
Доступ к элементу произвольной коллекции по индексу
    #38260467
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

А я могу показать вот такое:
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Доступ к элементу произвольной коллекции по индексу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]