Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2013, 17:51   #1
magnuz
Пользователь
 
Регистрация: 07.08.2012
Сообщений: 34
По умолчанию Получить список полей структуры и их значений

Есть структура с кучей полей.

Код:
[System.SerializableAttribute]
    public class RealCellCoord
    {
        public int id;
        // cell number
        public int ncell;
        //  CoordX
        public uint X_StopBack;
        public uint X_StopForward;
...
}
Как получить список названий полей - способ вроде найден.

Код:
System.Reflection.MemberInfo[] memberlist = typeof(RealCellCoord).GetMembers();
                for (int i = 0; i < memberlist.Length; i++)
                { 
                    if(memberlist[i].MemberType == System.Reflection.MemberTypes.Field)
                        if (memberlist[i].Name != "id")
                        {
                            ((DataRowView)bs_Coords.Current)[memberlist[i].Name] = RCC.GetType().GetProperty(memberlist[i].Name).GetValue(RCC, null);                          
                        }                                     
                }
Но при попытке получить значение данного поля идет ошибка.
magnuz вне форума Ответить с цитированием
Старый 10.10.2013, 18:25   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

не видно у вас свойств

Последний раз редактировалось eval; 10.10.2013 в 20:55.
eval вне форума Ответить с цитированием
Старый 10.10.2013, 20:42   #3
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Как-то так попробуйте)

Код:
using System.Linq;
using System.Reflection;

namespace ConsoleApplication1
{
    public class RealCellCoord
    {
        public int id;
        // cell number
        public int ncell;
        //  CoordX
        public uint X_StopBack;
        public uint X_StopForward;

    }

    class Program
    {
        static void Main(string[] args)
        {
            RealCellCoord RCC = new RealCellCoord();
            RCC.id = 1;
            RCC.ncell = 2;
            RCC.X_StopBack = 3;
            RCC.X_StopForward = 4;


            FieldInfo[] fields = typeof(RealCellCoord).GetFields();
            foreach (FieldInfo fieldInfo in fields.Where(field => field.Name != "id"))
            {
                string fieldName = fieldInfo.Name;
                object fieldValue = fieldInfo.GetValue(RCC);
                // здесь с полученным значением поля можете делать что угодно
            }
        }
    }
}
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить список полей таблицы в Interbase/Firebird tarakan1983 БД в Delphi 3 26.11.2011 17:21
Получить массив значений полей из массива класса KobolD C# (си шарп) 4 20.10.2011 13:31
Список с заглавным звеном, из текстового файла получить список из записей и по нему уже сделать задание Zigfried Помощь студентам 2 04.10.2010 20:29
Как получить список значений поля? Bendebej SQL, базы данных 2 05.02.2010 12:10
Сохранение значений вычисляемых полей gimbomba БД в Delphi 6 21.02.2009 19:19