Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
962 / 765 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
1
.NET 3.x

Структура и список полей структуры

28.04.2010, 10:10. Просмотров 1736. Ответов 1
Метки нет (Все метки)


Здравствуйте, помогите с задачей:
Есть структура:
C#
1
2
3
4
5
6
struct MyStruct
{
       int ID;
       int Teg;
       int Unit;
};
как мне представить структуру как массив полей (для того чтобы вывести в комбобокс и пользователь мог сам выбирать поле структуры и присваивать ей значение)

Добавлено через 14 часов 45 минут
Я частично решил проблему, чтобы заполнить ComboBox нужными данными из структуры сделал такой метод расширения:
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
public static void SetStructFields<T>(this ComboBox cb) where T : struct
{
    cb.Items.Clear();
 
    DataTable dt = new DataTable();
    dt.Columns.Add("ID");
    dt.Columns.Add("NAME");
 
    var type = typeof(T).GetMembers();
    int i = 0;
    foreach (var str in type)
    {
        dt.Rows.Add(new object[] 
        { 
            str, 
            String.Format("({0:000}) {1}", i, str.Name) 
        });
        i++;
    }
 
    cb.DataSource    = dt;
    cb.DisplayMember = "NAME";
    cb.ValueMember   = "ID";
}
Но появился второй вопрос, как можно теперь применить это в запросе LINQ?
все данные у меня хранятся в Dictionary<uint, MyStruct> dict;
Что я имею ввиду: скажем есть такой простенький запрос:
C#
1
var query = from s in dict.Value where s.Teg == val select s;
как сделать чтобы в запрос вставить переменную из ComboBox
чтобы было что-то на подобии:
C#
1
2
var field = ((ComboBox)sender).SelectedValue;
var query = from s in dict.Value where s[field] == val select s;
Естественно так как я написал - не работает, по сему и прошу помощи.

Добавлено через 1 час 17 минут
И возможно ли вообще присвоение переменной в єтом участке кода:
C#
1
dict.Value where s[B][field][/B]
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2010, 10:10
Ответы с готовыми решениями:

Получить список полей структуры и их значений
Есть структура с кучей полей. public class RealCellCoord { public int id; ...

Вывод в цикле структуры (структура имеет много полей данных)
Приветствую ))) Подскажите пожалуйста, как бы вы решили данную проблему. Имеется структура...

Реализовать односвязный список и обеспечить его сортировку по одному из полей структуры.
Реализовать односвязный список и обеспечить его сортировку по одному из полей структуры. зарание...

Совместите объявление и инициализацию структуры. После инициализации структуры выполните изменение ее полей с последующи
Написать программу структурного описания каталога одной книги. ...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
1
962 / 765 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
23.05.2010, 15:27  [ТС] 2
Да можно это решить довольно таки очень просто:
C#
1
2
var field = ((ComboBox)sender).SelectedValue;
var query = from s in dict.Value where s.GetType().GetField("field").GetValue(s) == val select s;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2010, 15:27

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Получить список таблиц, полей и описание полей базы данных
Добрый день! подскажите как можно получить список таблиц, полей и описание полей базы данных?

Структуры, нумерация полей структуры
Добрый день, у меня есть задачка, она решена. Но меня попросили &quot;предусмотреть нумерацию полей...

Структура=>Список=>Снова структура.
Определите предикат argrpl(Term,N,Arg,NTerm), заменяющий N-ый компонент в структуре Term на новый...

C++ Составить программу, в которой описывается структура из полей
Составить программу, в которой описывается структура из полей: Название товара, Цена товара,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.